我正在使用幾個VBA For Excel循環中的Excel工作簿,出於某種原因,我的循環達到32,766行後出現運行時錯誤。我想這是一個Int/Long類型的錯誤,但我似乎無法弄清楚如何解決它。這裏是我當前的代碼:Excel VBA:對於長距離的每個循環
' Add Play Call hyperlinks
Dim Rng As Range, Cell As Range
Dim FileName As String
Dim Bureau As String
Dim CopiedFilesDirectory As String
Dim AudioFilePath As String
lastRow = Sheets("CallLog").Range("I" & Rows.Count).End(xlUp).Row
Set Rng = Sheets("CallLog").Range("I" & firstRow & ":I" & lastRow)
For Each Cell In Rng
FileName = Range("I" & Cell.Row).Value
MatterNumber = Replace(Range("K" & Cell.Row).Value, "/", "-")
ContactUsername = Range("M" & Cell.Row).Value
Bureau = Range("N" & Cell.Row).Value
CopiedFilesDirectory = ImportCallsUserForm.CopyFilesDirectoryTextBox.Value
AudioFilePath = CopiedFilesDirectory & Bureau & "\" & ContactUsername & "\" & MatterNumber & "\" & FileName & ".flac"
With Worksheets("CallLog")
.Hyperlinks.Add Anchor:=.Range("S" & Cell.Row), _
Address:=AudioFilePath, _
ScreenTip:="Click to play call", _
TextToDisplay:="Play Call"
.Hyperlinks.Add Anchor:=.Range("T" & Cell.Row), _
Address:="", _
ScreenTip:="Click to write a summary", _
TextToDisplay:="Write Call Summary"
End With
Next Cell
由於我與範圍的工作,我想,也許有一種特殊類型的int變量的範圍與長距離,但做大量的在線後,我找不到任何東西研究。
任何幫助總是值得讚賞,我很樂意澄清任何不清楚的事情。
這樣做很有道理,因爲我一直在試圖弄清楚這幾個小時的時間,所以我的電子表格是各種通話記錄,每行代表一個電話。兩個超鏈接中的一個用作偵聽音頻文件的方式,另一個則啓動單獨的宏用戶窗體。我可能只是使用「Play call」鏈接的65,530鏈接,然後想出一些代碼來在每一行插入宏按鈕來啓動用戶窗體。爲什麼這個限制存在? – rchav9 2014-10-01 14:21:40
而不是宏按鈕,我會強烈建議使用'Worksheet_BeforeDoubleClick()'事件。您可以通過雙擊VB /宏編輯器中的工作表來使用它。然後使用您編寫代碼的區域頂部的下拉列表,選擇「工作表」和「BeforeDoubleClick」。變量「Target」將保存用戶雙擊的範圍/單元格。你可以使用它格式化你的URL並在任何程序中打開它。 – JNevill 2014-10-01 14:28:36
太好了,再次感謝@JNevill。我會讓你知道它是怎麼回事。 – rchav9 2014-10-01 14:30:52