我有一個宏,我在網上找到,並已用於允許我導出活動工作簿內的所有圖表對象。當我擁有它自己的正常工作簿時,它似乎工作得很好。VB個人工作簿錯誤,其中宏運行時,我每次打開Excel
但是,我希望這是一個通用函數,可以在任何給定的工作簿上使用,因此我將這些代碼放入了我個人的Excel工作簿中。做完這些之後,我注意到現在的代碼每次打開我的Excel應用程序時都會運行,而且我基本上都會看到大量打開空的「.png」文件的窗口。
如何防止每次打開應用程序時運行此代碼?它是一個優秀的設置或宏代碼固有的錯誤?
我在我的個人工作簿中有其他的宏,看起來正常工作(只有在通過工具> VB>宏菜單選擇時才運行),所以我覺得代碼有問題。任何幫助將不勝感激。
'the main problematic function'
Sub ExportAllPossibleCharts()
Dim i As Integer, exportCount As Integer
Dim fileNum As String, fileBase As String
Dim sheetObj As Worksheet
Dim chartObj As Chart
fileBase = ActiveWorkbook.FullName
fileBase = Replace(fileBase, ".xlsx", "")
exportCount = 0
'First, export all charts that are in their own sheets'
For Each chartObj In ActiveWorkbook.Charts
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
chartObj.Export fileBase & "_chart" & fileNum & ".png"
Next
'Then, export all charts that are embedded inside normal sheets'
For Each sheetObj In ActiveWorkbook.Worksheets
For i = 1 To sheetObj.ChartObjects.Count
fileNum = NiceFileNumber(exportCount)
exportCount = exportCount + 1
'Do the export'
sheetObj.ChartObjects(i).Activate
ActiveChart.Export fileBase & "_chart" & fileNum & ".png"
Next i
Next
End Sub
'small nicety to ensure two-digits for better file sorting'
Function NiceFileNumber(num As Integer) As String
If num < 10 Then
NiceFileNumber = "0" & num
Else
NiceFileNumber = num
End If
End Function
其中VBA項目(我的意思是哪個對象模塊)放置了這個代碼?你能找到來自Thi的Workbook_Open事件嗎? sWorkbook'對象模塊並向我們提供代碼? – 2013-12-11 14:05:44
該代碼目前生活在Module 1中。我將如何找到這些事件來向您發送代碼? – user3091348
好吧我找到了「ThisWorkbook對象」,目前這個對象中沒有代碼,我可以看到 – user3091348