Скопировать столбец книги в другую книгу - PullRequest
0 голосов
/ 27 сентября 2019

Я пытаюсь использовать VBA для копирования столбца из одной рабочей книги в другую в зависимости от заголовка столбца.Однако каждый раз я получаю ошибку Run-time error '9': Subscript out of range.

Я задаю два других вопроса из SO 1 2 .Однако строка кода, на которой он не работает, кажется, работает для другого рассматриваемого OP [2].

Sub Autofill()

    Dim sourceColumn As Range, target_column As Range

    'read csv and convert to excel

    tx_design_file_name = ThisWorkbook.Sheets("Cover").Range("E10").Value

    Set tx_design_file_workbook = Workbooks.Open(tx_design_file_name)

    tx_design_file_workbook.SaveAs FileName:=ThisWorkbook.Path & "\Input\data.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    tx_design_file_workbook.Close savechanges:=False


    Set compt_template = Workbooks.Open(ThisWorkbook.Path & "\Template\CoMPT_Convert_Template.xlsx")


    Set target_column = compt_template.Worksheets(1).Columns("A")


    Set data_excel_workbook = Workbooks.Open(ThisWorkbook.Path & "\Input\data.xlsx")

    Dim aCell As Range


    With data_excel_workbook.Worksheets(1)
        Set aCell = .Rows(1).Find(What:="SiteName", LookIn:=xlValues, LookAt:=xlWhole, _
                                          MatchCase:=False, SearchFormat:=False)

        If Not aCell Is Nothing Then
            aCell.EntireColumn.Cut Destination:=target_column
        Else
            MsgBox "SiteName not found"
        End If
    End With

    output_path_name = ThisWorkbook.Path & "\Output\CoMPT_Convert.xlsx"
    compt_template.SaveAs (output_path_name)
    'target_column.SaveAs (output_path_name)

End Sub

1 Ответ

0 голосов
/ 27 сентября 2019

Прочитав ваш комментарий, я думаю, что вы сделали опечатку:

Sub Autofill()

    Dim sourceColumn As Range, target_column As Range

    'read csv and convert to excel

    tx_design_file_name = ThisWorkbook.Sheets("Feuil1").Range("E10").Value

    Set tx_design_file_workbook = Workbooks.Open(tx_design_file_name)

    tx_design_file_workbook.SaveAs Filename:=ThisWorkbook.Path & "\Input\data.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False

    tx_design_file_workbook.Close savechanges:=False


    Set compt_template = Workbooks.Open(ThisWorkbook.Path & "\Template\CoMPT_Convert_Template.xlsx")


    Set target_column = Workbooks("CoMPT_Convert_Template").Worksheets(1).Range("A" & ActiveSheet.Cells(1048576, 1).End(xlUp).row)


    Set data_excel_workbook = Workbooks.Open(ThisWorkbook.Path & "\Input\data.xlsx")

    Dim aCell As Range


    With data_excel_workbook.Worksheets(1)
        Set aCell = .Rows(1).Find(What:="SiteName", LookIn:=xlValues, LookAt:=xlWhole, _
                                          MatchCase:=False, SearchFormat:=False)

        If Not aCell Is Nothing Then
            aCell.EntireColumn.Cut Destination:=target_column
        Else
            MsgBox "SiteName not found"
        End If
    End With

    output_path_name = ThisWorkbook.Path & "\Output\CoMPT_Convert.xlsx"
    compt_template.SaveAs (output_path_name)
    'target_column.SaveAs (output_path_name)

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...