2017-07-28 11 views
1

1つのExcelスプレッドシートからいくつかの列を別のシートにインポートしようとしています。以下は私がこのフォーラムで見つけたコードで、うまくいきます。私が直面している唯一の問題は、1つの列だけをインポートすることです。インポートするVBAコード複数の列のフロンを別のシートにコピー

誰かが複数の列をインポートできるようにコードを編集する方法を教えてください。

Importing single Column 
Sub CopyColumnToWorkbook() 
Dim sourceColumn As Range, targetColumn As Range 

Set sourceColumn = Workbooks("Source.xlsm").Worksheets("2017"). Columns(“A”) 
Set targetColumn = Workbooks("Target.xlsm").Worksheets("Field WH Projections").Columns(“A”) 

sourceColumn.Copy Destination:=targetColumn 
End 
+0

興味深い接続されていない列のためのOPの要件に基づいて、私はあなたがコラム "数字"(すなわち '列( "A")=などの文字列の文字を使用することができます知りませんでしたこのような理由から、私はこれをバンプとするでしょう。技術的には、あなたのコードを "A:C"に変更したり、必要なだけ多くのコードを変更するだけでした。 – PGCodeRider

答えて

0

更新

Sub ColumnCopy() 
Dim Source_Sheet As Worksheet, Target_Sheet As Worksheet 
Dim CLM As Integer, LastColumn As Integer 

Set Source_Sheet = Workbooks("Source.xlsm").Worksheets("2017") 
Set Target_Sheet = Workbooks("Target.xlsm").Worksheets("Field WH Projections") 

LastColumn = Source_Sheet.Cells.Find("*", searchorder:=xlByColumns, searchdirection:=xlPrevious).Column 

For CLM = 1 To LastColumn 

'Columns 1 or (A)... 2 (B).... F and H. 
If CLM = 1 Or CLM = 2 Or CLM = 6 Or CLM = 8 Then 

Source_Sheet.Columns(CLM).Copy Destination:=Target_Sheet.Columns(CLM) 

End If 

Next CLM 

End Sub 
+0

ええ、私は列( "A:C")を使用することができますが、私の列はインポートしようとしている順番ではありません(つまり "A、B、F、H") – Smoulder

+0

。ストリーミングを変更した場合は、数値を変更する必要があります。通常、私は仕事のためにこのような関数をいくつか見つけることができますが、うまくいけば、これはあなたに範囲とif文の理解をもたらします。 – PGCodeRider

+0

私はそれがエラーを引き起こしていたかどうかをチェックするためにファイルの名前を変更しようとした何らかの理由でスクリプトが範囲外のエラーを出してしまった。それはあなたの側で実行されましたか? – Smoulder