Excel VBA - 从已关闭的工作簿中复制整个列

时间:2011-05-11 07:51:43

标签: excel vba excel-vba

我有一个包含大量信息的Excel工作簿,我想将其拉出并插入到包含此宏的新工作簿中。

我真正追求的是一个通用函数,它接受一些像sourcefile和column这样的参数。我只需要列,但源文件中的整个列。

这就是我想象的功能(伪代码)

Public Function getColumnFromWorkbook(ByVal strSourceFile, ByVal sourceWorksheet)
    Application.ScreenUpdating = False
    Set wb = Workbooks.Open(strSourceFile, True, True)

    With ThisWorkbook.Worksheets(destSheet)
        .column(1) = wb.Worksheets(sourceWorksheet).Columns(sourceColumn)
    End With        
End Function

上面的功能可能不起作用。但它可能会显示我基​​本上在追求的内容:)。

1 个答案:

答案 0 :(得分:3)

这似乎对我有用 - 请注意我已经扩展了参数列表。没有错误检查。

Public Function getColumnFromWorkbook(ByVal strSourceFile As String, ByVal sourceWorksheetName As String, ByVal sourceColumn As Long, ByVal destSheet As Worksheet)

    Application.ScreenUpdating = False

    Dim wb As Workbook
    Set wb = Workbooks.Open(strSourceFile, True, True)
    wb.Worksheets(sourceWorksheetName).Columns(sourceColumn).Copy (destSheet.Columns(1))
    wb.Close

    Application.ScreenUpdating = True

End Function