求教个Excel的问题
- 自走人形我有一个文件件里面有几百个名字不规则的EXCEL(名字不能改),每个EXCEL又有几个工作表,请问怎么样才能较快的一次性打印所有的工作表,目前是采用笨方法打开所有文件然后一个一个点打印所有工作簿,效率太低了
- riva128VBA~~~
- ouiki简单用VBA写了一下,我没测,你试试看。
Public Sub findname()
Dim fs, f, f1, fc
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFolder("d:\") '引号里写你的目录
Set fc = f.Files
For Each f1 In fc
For Each i In f1.Sheets.Count
f1.Sheets(i).PrintOut copies:=1
Next j
Next
End Sub - 自走人形额,忘了说了,我不是弄计算机的,不懂VBA,另外公司也不会让我私自装一些程序的,只能在已有的条件下想想办法,现在电脑里只有EXCEL,WOED,没有VBA之类的东西的
- lyraley……这个VBA就是EXCEL里的宏,你新建一个宏,把代码粘贴进去执行就行了。另外3楼厉害啊
- 自走人形这样啊,我不懂这个,见笑了,我去试试,谢谢楼上各位帮助
- 自走人形
好像出错了 - 自走人形这张清楚点
- rivernext i 吧应该不是next j
- 憂鬱的臺灣烏龜把那个"next j"改成“next i”就可以了,3楼打字太快手误了。
- 自走人形别人给了另外一种解决方法,成功了
Sub 打印()
Application.ScreenUpdating = False
Dim FileFind As FileSearch
Dim Fs As Variant
Dim FilePath As String
Dim FileStyle As String
Dim i%
FilePath = ThisWorkbook.Path
FileStyle = "*.XLS"
With Application.FileSearch
.LookIn = FilePath
.Filename = FileStyle
.Execute
For Each Fs In .FoundFiles
Name1 = Right(Fs, 6)
If Name1 = Right(ThisWorkbook.Name, 6) Then GoTo 100
Set xlsheet = Workbooks.Open(Fs)
For i = 1 To Sheets.Count
Sheets(i).PrintOut
Next i
xlsheet.Close False
100:
Next Fs
End With
Set xlsheet = Nothing
Application.ScreenUpdating = True
End Sub