按钮(窗体控件)不正确地运行宏



我创建了一个宏,将电子表格的几个选项卡导出到csv文件,然后重新打开原始文档。通常情况下,宏会正确运行,但当运行某个按钮时,它无法在工作簿中找到其他工作表。

该文档包含5个选项卡:1个用于按钮,4个用于数据(以下为硬编码(。当我运行宏时,它会正确导出4张图纸,但当我按下按钮时,会导出第一张图纸4次(包含按钮的图纸,未在宏中列出(。我所能想到的是,该按钮无法将活动工作簿传递给宏,因此它不能"参见";工作表对象。。。有什么我能解决的吗?

请注意,"另存为"命令以外的所有行(理论上(都是不相关的。我试着把";工作表";用";ActiveWorkbook。工作表";并得到了相同的结果。

Sub SaveAsCSVs()
Dim fullname As String
fullname = ThisWorkbook.fullname
Application.DisplayAlerts = False
Worksheets("Ships").SaveAs Filename:=ThisWorkbook.path & "ships", FileFormat:=xlCSV
Worksheets("Weapons").SaveAs Filename:=ThisWorkbook.path & "weapons", FileFormat:=xlCSV
Worksheets("Specials").SaveAs Filename:=ThisWorkbook.path & "specials", FileFormat:=xlCSV
Worksheets("Modifiers").SaveAs Filename:=ThisWorkbook.path & "modifiers", FileFormat:=xlCSV
Application.Workbooks.Open (fullname)
Application.DisplayAlerts = True
Workbooks("modifiers.csv").Close
End Sub

奇怪,行为,确实。。。

作为要保存的单张,请使用下一个改编的代码。它应该在两种情况下都有效:

Sub SaveAsCSVs()
Dim fullname As String
fullname = ThisWorkbook.fullname
Application.DisplayAlerts = False
Worksheets("Ships").Copy 'it creates a new workbook containing only the copied sheet...
ActiveWorkbook.saveas FileName:=ThisWorkbook.Path & "ships", FileFormat:=xlCSV
ActiveWorkbook.Close False
Worksheets("Weapons").Copy
ActiveWorkbook.saveas FileName:=ThisWorkbook.Path & "weapons", FileFormat:=xlCSV
ActiveWorkbook.Close False
Worksheets("Specials").Copy
ActiveWorkbook.saveas FileName:=ThisWorkbook.Path & "specials", FileFormat:=xlCSV
ActiveWorkbook.Close False
Worksheets("Modifiers").Copy
ActiveWorkbook.saveas FileName:=ThisWorkbook.Path & "modifiers", FileFormat:=xlCSV
ActiveWorkbook.Close False
'Application.Workbooks.Open (fullname) 'no need to open, it remained opened...
Application.DisplayAlerts = True
End Sub

相关内容

最新更新