2011-05-11 13 views
2

私は、このマクロが含まれているこの新しいブックに抜き出して挿入したいと思う多くの情報を持つExcelブックを持っています。Excel VBA - クローズドブックから列全体をコピー

私が実際にやっているのは、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 

おそらく動作しません上記の関数のように見えるように機能を描いてる方法です。しかし、それは私が本質的に何を示している可能性があります:)

答えて

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 
+0

私はこのサブ関数をどのようにサブ関数から呼び出すのですか?私は主に引数を中心に考えています。特に、最後のものは 'destSheet As Worksheet' –

+0

です。これは、getColumnFromWorkbook "TEST book.xlsx"、 "xyz"、3、ActiveSheetでテストしましたが、最終パラメータの任意のシート。 ThisWorkbook.Sheets( "hunting_dog_taxonomy") –

+0

Nevermind、うまく動作します! :) –

関連する問題