>
VBA에 초보자의 비트. 소스 스프레드 시트에서 대상 스프레드 시트로 값을 복사하려고합니다. 대상 스프레드 시트에는 소스 스프레드 시트에서 복사 할 명명 된 범위가 포함 된 열이있는 가져 오기 설정 시트가 있으며 복사 된 데이터 대상의 명명 된 범위가 포함 된 열도 있습니다.

대상 범위 및 소스 범위를 정의하는 데 문제가 있습니다. 스크립트가 각 행을 통과하고 대상 및 소스 범위를 가져 오기 설정 시트의 관련 열에 지정된 명명 된 범위로 설정하고 소스에서 대상으로 데이터를 복사하고 싶습니다.

도움을 주시면 대단히 감사하겠습니다.

Public Sub grabIRR()   
Dim temp_workbook As Excel.Workbook
Dim filepath As String
Dim filename As String
Dim source_range As String
Dim dest_range As String
Dim IRR_Row As Integer
Application.Calculation = xlCalculationManual
Set temp_workbook = Workbooks.Open(filename:=link_to_IRR, ReadOnly:=True)
Application.Calculation = xlCalculationManual
shtPrivateEquity.Cells.ClearContents
For IRR_Row = 15 To 110
    dest_range = Worksheets("import_settings").Range(IRR_Row, 11).Value.RefersToRange
    source_range = Worksheets("import_settings").Range(IRR_Row, 9).Value.RefersToRange
    shtPrivateEquity.Range(dest_range).Value = temp_workbook.Names(source_range).RefersToRange.Value
Next IRR_Row
On Error GoTo 0
Application.Calculation = xlCalculationAutomatic
temp_workbook.Close savechanges:=False

엔드 서브

  • 답변 # 1

    범위 객체보다는 문자열로 이름을 다루는 것이 더 쉬울 것이라고 생각합니다.

    이것을 시도하십시오 :

    For IRR_Row = 15 To 110
        dest_range_name = Worksheets("import_settings").Cells(IRR_Row, 11).Value
        source_range_name = Worksheets("import_settings").Cells(IRR_Row, 9).Value
        shtPrivateEquity.Range(dest_range_name).Copy Destination := temp_workbook.Range(source_range_name)
    Next IRR_Row
    
    

    일부 변수 이름을 변경하고 불법 Range(row, column) 를 변경했습니다.   Cells(row, column) 로 .

관련 자료

  • 이전 c# - 속성 값에 의존/선택하는 목록 조합
  • 다음 model binding - Laravel의 미들웨어에서 라우트 매개 변수 설정