태그 보관물: vba

vba

명명 된 범위를 다른 통합 문서로 복사 Subscript out of range.

하나의 통합 문서에서 다른 통합 문서로 명명 된 셀을 복사하는이 VBA 코드가 있지만 나에게 제공합니다 Error 9: Subscript out of range. 어떤 아이디어가 있습니까?

Sub namexfr()
 wbs = "C:\Users\MousaviM\Desktop\Book1.xlsm"
 wbd = "C:\Users\MousaviM\Desktop\Book2.xlsm"
 For Each nam In Workbooks(wbs).Names
  Workbooks(wbd).Names.Add Name:=nam.Name, RefersToR1C1:=nam.RefersToR1C1
 Next
End Sub



답변

따라서 문제는 Workbooks(wbs)통합 문서 개체로 인식되지 않습니다. 괄호 안의 인수는 파일 경로가 아닌 인덱스, 즉 정수일 것으로 예상되기 때문입니다.

한 가지 해결 방법은 통합 문서 컬렉션을 반복하여 원하는 경로를 열려있는 통합 문서 경로와 비교하는 것입니다. 그런 다음 통합 문서 개체를 일치하는 통합 문서와 동일하게 설정하십시오.

아래 코드에서 각 통합 문서에 대해이 작업을 수행했습니다. 많은 통합 문서가 열려 있지 않기 때문에 여러 루프가 계산 상 중요하지 않습니다.

Sub namexfr()
Dim wbs As Workbook, wbd As Workbook, wb As Workbook
wbspath = "C:\Users\MousaviM\Desktop\Book1.xlsm"
wbdpath = "C:\Users\MousaviM\Desktop\Book2.xlsm"
For Each wb In Workbooks
    If wb.FullName = wbspath Then
        Set wbs = wb
        Exit For
    End If
Next wb
For Each wb In Workbooks
    If wb.FullName = wbdpath Then
        Set wbd = wb
        Exit For
    End If
Next wb
For Each nam In wbs.Names
    wbd.Names.Add Name:=nam.Name, RefersToR1C1:=nam.RefersToR1C1
Next
End Sub


답변