내 Excel 통합 문서의 몇 가지 VBA For Each 루프를 사용하고 있으며 루프가 32,766 행에 도달 한 후 어떤 이유로 런타임 오류가 발생합니다. 나는 이것이 Int/Long 타입 에러라고 생각했지만, 그것을 고치는 방법을 생각할 수 없다. 여기에 내 현재 코드입니다 :Excel VBA : Long 범위의 각 루프
' 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
나는 범위로 일하고 있어요 때문에, 나는 아마 인터넷 용 변수의 특별한 유형이 긴 산맥 대 영역]이라고 생각하지만, 나는 광범위한 온라인을 수행 한 후 아무것도 찾을 수 없습니다 연구.
언제나 도움을 주시고 명확하지 않은 부분을 명확하게 설명해 드리겠습니다.
나는 이것을 이해하려고 몇 시간 동안 내 머리를 감싸고 있었기 때문에 그렇게 많은 의미가 있습니다. 따라서 스프레드 시트는 일종의 통화 로그입니다. 각 행은 하나의 전화 통화를 나타냅니다. 두 개의 하이퍼 링크 중 하나는 오디오 파일을 듣는 방법으로 사용되고 다른 하나는 별도의 매크로 userform을 시작합니다. 나는 '전화 통화'링크를 위해 65,530 개의 링크를 사용하고, 사용자 폼을 시작하기 위해 모든 행에 매크로 버튼을 삽입하는 일종의 코드를 생각해 낼 수 있습니다. 왜이 한도가 존재합니까? – rchav9
매크로 버튼 대신에'Worksheet_BeforeDoubleClick()'이벤트를 사용하는 것이 좋습니다. VB/매크로 편집기에서 워크 시트를 두 번 클릭하여 사용할 수 있습니다. 그런 다음 코드를 작성한 영역의 맨 위에있는 드롭 다운을 사용하여 "워크 시트"와 "BeforeDoubleClick"을 선택하십시오. 변수'Target'은 사용자가 더블 클릭 한 범위/셀을 저장합니다. 당신은 그것을 사용하여 당신의 URL을 형식화하고 어떤 프로그램에서 그것을 열 수 있습니다. – JNevill
다시 한번 감사드립니다. 어떻게 진행되는지 알려 드리겠습니다. – rchav9