![](/img/trans.png)
[英]How to use 'Export to HP ALM' Addin for Excel using Macro or VbScript
[英]How to use a macro from an addin excel?
我开始用excel VBA编程,我想做的是:
1)当我打开一个新的excel文件(空)时,我导入了excel加载项
2)然后,我要使用在该插件上实现的宏(在模块中)
3)该加载项基本上将多个excel工作表(在指定路径中)组合为一个(我在其中运行宏的工作表) 注意:它在不用作加载项(即单独使用)时有效
4)当我在一个空的excel文件中运行以下代码时,它不会将其他工作表放在其中。 它只是打开找到的第一个excel文件,什么也没有发生。
您知道我在做什么错误吗? 谢谢你的建议:)。
Sub GetSheets()
Path = "C:specified path\"
Filename = Dir(Path & "*.xlsx")
Do While Filename <> ""
Workbooks.Open Filename:=Path & Filename, ReadOnly:=True
For Each Sheet In ActiveWorkbook.Sheets
Sheet.Copy After:=ThisWorkbook.Sheets(1)
Next Sheet
Workbooks(Filename).Close
Filename = Dir()
Loop
End Sub
如果从Addin启动代码, ThisWorkbook
引用Addin文件,但是我想您想将第一个ActiveWorkbook
所有内容都合并为目标。
Sub GetSheets()
Dim fPath As String, fName As String
Dim destWB As Workbook, currentWB As Workbook
Dim i As Long
Set destWB = ActiveWorkbook
fPath = "C:\specified path\"
fName = Dir(fPath & "*.xlsx")
Do While fName <> ""
Set currentWB = Workbooks.Open(Filename:=fPath & fName, ReadOnly:=True)
For i = 1 To currentWB.Sheets.Count
currentWB.Sheets(i).Copy After:=destWB.Sheets(destWB.Sheets.Count)
Next i
currentWB.Close SaveChanges:=False
fName = Dir()
Loop
End Sub
我建议不要为变量使用内部名称,例如“ Sheet”或“ Filename”,因此我更改了它们的名称。
如果您总是在第一张纸的后面复印,则更改纸页顺序。 所以我改为将其添加到末尾。
由于工作Sheets
还包括图表工作表,因此在这种情况下,它是比Worksheet
更好的选择。 要遍历它们,我建议使用一个计数器,因为它不是Sheet
对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.