2016-11-18 202 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。最後,我得到exampel copyrange1 = C:C – Zigouma

+0

您需要從選擇行中的引號中刪除copyrange1和copyrange2。 – SJR

回答

0

這應該適合你,注意它只複製你輸入的列... ex - 輸入C和E只能複製A,C,E。如果您輸入C和E,則不會複製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