如何編寫一個宏,該工作簿通過打開的工作簿運行,並根據每個工作簿的內容使用特定名稱進行保存。每個工作簿在工作表「Book1」中都有唯一的列標題,因此工作簿可以由單元格A1中的文本確定。如果工作簿和工作表Book1和單元格A1 =「貨幣」將活動工作簿另存爲Y:\ risk \ CCY.csv,如果單元格A1 =「興趣」將活動工作簿另存爲Y:\ risk \ IR.csv。循環瀏覽所有打開的工作簿,直到沒有打開的工作簿符合條件。Excel宏可保存所有打開的工作簿(如果它們符合特定條件)
0
A
回答
1
你有沒有使用VBA的經驗?我用宏記錄器來弄清楚如何保存。我做了下面的代碼並進行了測試,它對我來說工作得很好。我確實嘗試了兩次,並且它提示我是否要覆蓋該文件。雖然沒有內置其他錯誤處理。
Sub SaveWorkbooks()
Dim WB As Workbook
Dim FileName As String, FolderPath As String
Dim SaveWorkbook As Boolean
FolderPath = "Y:\risk"
ChDir FolderPath
For Each WB In Workbooks
Select Case WB.Sheets(1).Range("A1").Value
Case Is = "Currency"
FileName = "CCY"
Case Is = "Interest"
FileName = "IR"
Case Else
FileName = ""
End Select
'Make sure it's not saving not applicable workbooks
If FileName <> "" Then SaveWorkbook = True Else SaveWorkbook = False
If SaveWorkbook = True Then
ActiveWorkbook.SaveAs FileName:=FolderPath & "\" & FileName & ".xlsx", _
FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
End If
Next WB
End Sub
+0
感謝您花時間在此並感謝您提供的建議代碼。這些論壇對我來說是新的,顯然我誤解了一些東西。有趣的是,你會遇到不太歡迎的評論。我幾乎沒有VBA的經驗,但幾年(幾十年)的Excel功能和標準的宏錄製。我沒有讓代碼工作100%,但我會努力工作,看看我能否解決它。它找到一個「案例」並將其保存爲兩個不同的名稱。 – user6726550
+0
沒問題。如果您發現答案是最佳解決方案,請確保您繼續並將其標記爲已接受! – SandPiper
1
我同意,@thecoshman這傷害了我的眼睛閱讀。這一次我會例外。試試這個:
Sub SaveWorkbooks()
Dim workbookObj As Workbook
For Each workbookObj In Excel.Workbooks
If workbookObj.Sheets("Book1").Range("A1").Value = "whatever" Then
workbookObj.Save
workbookObj.Close
End If
Next workbookObj
'Clean up
Set workbookObj = Nothing
End Sub
相關問題
- 1. Excel VBA - 在宏內循環保存的工作簿...工作簿無法打開
- 2. Excel宏關閉所有打開的工作簿
- 3. Excel工作簿打開宏重新打開關閉的工作簿
- 4. Excel宏Workbook_BeforeClose特定工作簿
- 5. Excel VBA宏任何工作簿上的「運行/打開」宏
- 6. 保護打開的工作簿上的特定工作表
- 7. 打開宏工作簿時在特定的靜態文件上運行宏
- 8. 保存Excel工作簿的副本沒有宏觀
- 9. Excel工作簿打開事件宏並不總是運行
- 10. 宏未開啓工作簿打開
- 11. Excel VBA檢查工作簿是否打開,如果不是,打開它
- 12. Excel宏 - 打開特定的word文件
- 13. C++ Excel保存工作簿
- 14. 遍歷一個Excel工作表的所有宏工作簿
- 15. 關閉所有的excel工作簿(excel的幾個實例可能會打開)
- 16. 將一個打開的Excel工作簿保存爲字節[]
- 17. 使用自動保存已打開的新Excel工作簿
- 18. 如何僅在Excel工作簿打開VBScript時才運行宏?
- 19. 自動保存特定的工作簿
- 20. 打開excel工作簿時打開它--VBA代碼
- 21. EXCEL VBA關閉所有打開的外部Excel文件的工作簿連接
- 22. 自動打開,更新和保存Excel工作簿
- 23. 應用保護片宏所有工作表中的工作簿
- 24. EXCEL - 當打開Excel工作簿
- 25. 查找所有打開的Excel工作簿
- 26. 使用Access 2010 VBA列出所有打開的Excel工作簿
- 27. 保存爲xls工作簿時刪除所有宏/ vba
- 28. Excel不完整的宏打開其他工作簿
- 29. Excel宏:分流工作簿
- 30. 保存現有Excel工作簿的副本而不覆蓋它
你是否試圖編寫一個宏來做到這一點,或者你甚至試圖記錄宏(當你完成任務),看看Excel在做什麼? – Clauric