关于EXCEL的问题---AUTOIT
1.如何可以快捷打印?
2.如何选定指定的工作表,如我要选择工作表"3",可以实现吗?
3.如何检测出已经打开了多少个EXCEL表格?
4.如何检测出已经打开了多少个WORD文档?如何在两个(或更多)WORD之间切换.
我在做一个多表格多文档自动打印时遇到的问题,不知用什么办法了,请大家看看可不可以实现上述条件,谢谢! 顶起来一下。。。 各种Excel VBA的命令
本文来自学习网(www.gzu521.com),原文地址:http://www.gzu521.com/campus/article/software/200809/174773.htm 1.关于快速打印
ShellExecute("myfile.txt", "", @ScriptDir,'print')
是可以完美执行快速打印
ShellExecute("Book1.xls",'',@ScriptDir,'print')
就不行了
在帮助文件UDF里面有_WordDocPrint 这个函数,但却没有_ExcelPrint
上官网搜了一下
有个网友自己写了一个
不过我电脑装的是精简版office,_Excel和_Word一直都是执行出错,没办法测试了
自己试试:; test for printing
_ExcelPrint($oExcel);
; .. and in the UDF add
;
; print current active worksheet
;
Func _ExcelPrint($oExcel)
If NOT IsObj($oExcel) Then Return SetError(1, 0, 0)
; for information about currrent active printer
; MsgBox(1, "printer" , $oExcel.ActivePrinter);
;$oExcel.ActivePrinter="Adobe PDF auf NE03:" ; e.g for printing into PDF on my machine ..
$oExcel.ActiveWorkbook.PrintOut() ;
Return 1
EndFunc 2.如何选定指定的工作表,如我要选择工作表"3",可以实现吗?
ExcelSheetActivate
Activate the specified sheet by string name or by number
在帮助文件Excel UDF里面有例子 3.如何检测出已经打开了多少个EXCEL表格?#include <winapi.au3>
Local$iProcessID
$pid=ProcessExists("EXCEL.exe")
Sleep(1000)
$wlis=WinList()
$excelnumber=0
for $i=1 to $wlis
if $wlis[$i]<> "" AND IsVisible($wlis[$i]) then
_WinAPI_GetWindowThreadProcessId($wlis[$i], $iProcessID)
If StringInStr($wlis[$i], "Microsoft Excel") then
$excelnumber=$excelnumber+1
EndIf
EndIf
Next
MsgBox(0,'',"目前打开了"&$excelnumber&'个EXCEL表格')
Func IsVisible($handle)
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIf
EndFunc4.如何检测出已经打开了多少个WORD文档?#include <winapi.au3>
Local$iProcessID
$pid=ProcessExists("WORD.exe")
Sleep(1000)
$wlis=WinList()
$excelnumber=0
for $i=1 to $wlis
if $wlis[$i]<> "" AND IsVisible($wlis[$i]) then
_WinAPI_GetWindowThreadProcessId($wlis[$i], $iProcessID)
If StringInStr($wlis[$i], "WORD") then
$excelnumber=$excelnumber+1
EndIf
EndIf
Next
MsgBox(0,'',"目前打开了"&$excelnumber&'个WORD')
Func IsVisible($handle)
If BitAnd( WinGetState($handle), 2 ) Then
Return 1
Else
Return 0
EndIf
EndFunc如何在两个(或更多)WORD之间切换.
_WordAttach 貌似能办到 谢谢lynfr8 的回复.
2.如何选定指定的工作表,如我要选择工作表"3",可以实现吗?
ExcelSheetActivate
Activate the specified sheet by string name or by number
在帮助文件Excel UDF里面有例子
ExcelSheetActivate 这个好像只能新打开一个EXCEL,再激活工作表.
如果是激活当前已经打开的EXCEL的工作表就好了. 激活当前已经打开的EXCEL的工作表
_ExcelBookAttach
认真研究下这个函数
我电脑装的是精简版office,_Excel和_Word一直都是执行出错,没办法测试
也懒得重装了
其他人跟上帮楼主测试解答吧 学习。。。学习 学习一下!! 学习学习 !! 学习一下!!
页:
[1]