2016-11-18 7 views
0

テーブルの範囲をコピーして新しいワークブックに貼り付けたいとします。列Aは常にコピーされます。それに加えて、他の列で構成された他の範囲を変数としてコピーしたいと思います。たとえば、列Aに追加され、列CとEをコピーします。いくつかの方法を試しましたが、私はそれを取得しませんでした!これは私が書いたものです:変数でVBAを使用する範囲

Sub Macro3() 
Dim col1 As String 
Dim copyrange1 As String 
Dim copyrange2 As String 
col1 = InputBox("first columns:") 
copyrange1 = col1 & ":" & col1 
col2 = InputBox("second columns:") 
copyrange2 = col2 & ":" & col2 
Range("A:A,copyrange1,copyrange2").Select 
'Range("H2").Activate 
Selection.Copy 
Workbooks.Add 
ActiveSheet.Paste 
'Range("E5").Select 
Windows("Pedro.xlsm").Activate 
End Sub 

kannあなたは私にそれを解決してください?どうもありがとう!

+0

桁を文字または数字で入力していますか? – tjb1

+0

それは手紙です。 col1とcol2をStringとして返します。最後に私はexampelのために得るcopyrange1 = C:C – Zigouma

+0

あなたの引用線の中からselectlineのcopyrange1とcopyrange2を削除する必要があります。 – SJR

答えて

0

これは、入力した列のみをコピーすることに注意してください。ex - CとEを入力すると、A、C、Eのみがコピーされます。 CとDを入力すると、C、D、Eはコピーされません。

Sub Macro3() 
Dim col1 As String, col2 as String 
Dim copyrange1 As Range, copyrange2 As Range, CopyRange3 As Range 
col1 = InputBox("first columns:") 
col1 = col1 & ":" & col1 
Set copyrange1 = Range(col1) 
col2 = InputBox("second columns:") 
col2 = col2 & ":" & col2 
Set copyrange2 = Range(col2) 
Set CopyRange3 = Union([A:A], copyrange1, copyrange2) 
CopyRange3.Copy 
'Range("H2").Activate 
'Selection.Copy 
Workbooks.Add 
ActiveSheet.Paste 
'Range("E5").Select 
Windows("Pedro.xlsm").Activate 
End Sub 
+0

それは私が必要とするものです!どうも – Zigouma

関連する問題