我想打開一個電子表格串列來更新一個單元格并再次保存它們。但是由于打開每個電子表格需要時間,所以在打開幾個電子表格后VB會崩潰。也許使用一些計時器來允許更多時間打開每個?或者在繼續下一個電子表格之前進行一些檢查以確定之前的電子表格已經打開?非常感謝!
Workbooks.Open Filename:="\\File1.xlsx"
ActiveWindow.Visible = False
Windows("File1.xlsx").Visible = True
Application.Goto Reference:="'Tab1'!R1C1"
Range("L1").Select
ActiveCell.FormulaR1C1 = "10/30/2022"
Workbooks.Open Filename:="\\File 2.xlsx"
ActiveWindow.Visible = False
Windows("File2.xlsx").Visible = True
Application.Goto Reference:="'Tab1'!R1C1"
Range("L1").Select
ActiveCell.FormulaR1C1 = "10/30/2022"
Workbooks.Open Filename:="\\File3.xlsx"
ActiveWindow.Visible = False
Windows("File3.xlsx").Visible = True
Application.Goto Reference:="'Tab1'!R1C1"
Range("L1").Select
ActiveCell.FormulaR1C1 = "10/30/2022"
uj5u.com熱心網友回復:
假設您想像現在一樣從嵌入在代碼中的串列中作業,那么這將使您繼續前進:
Sub updatecell()
Const RangeToUpdate As String = "L1"
Const TabToUpdate As String = "Tab1"
Const ValueToUpdate As String = "10/30/2022"
Dim filelist(3), fn, dwb As Workbook
filelist(1) = "\\File1.xlsx"
filelist(2) = "\\File2.xlsx"
filelist(3) = "\\File3.xlsx"
For Each fn In filelist
Set dwb = Workbooks.Open(fn)
dwb.Worksheets(TabToUpdate).Range(RangeToUpdate).Value = ValueToUpdate
dwb.Save
dwb.Close
Next
End Sub
您可能會考慮將串列保存在包含宏的作業簿的范圍內。或者 - 如果檔案都在一個檔案夾中并且檔案名與模式匹配 - 考慮使用Dir來定位回圈中的每個檔案。
uj5u.com熱心網友回復:
您的代碼更加聰明,但不知何故它在打開第一個電子表格時中斷了:
“運行時出現錯誤 1004,我們找不到它。也許你移動了它?”
實際地址很長,但我確實可以復制、粘貼到運行命令并打開它。也許有一些長度限制?
\server101.se.net\dfs101\File_SE\EMEA\BCNUSRENER\E8\DATA\LTSA\Projects\LTSA IST\HE 1\1 ANALYSIS\FY2022\EA FY202212 - HE 1.xlsx
uj5u.com熱心網友回復:
我一直在測驗您的代碼,但 Set dwb = Workbooks.Open(fn) 似乎不起作用,而 Set dwb = Workbooks.Open("\File1.xlsx") 可以。努力發現問題所在。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/527650.html
標籤:擅长vba
