【发布时间】:2016-09-25 09:04:26
【问题描述】:
我想将一个表复制到一个新的工作簿中,同时选择我要复制的范围并且知道第一列(“A”)会自动复制。 (行不是问题,都得复制) 例如,我有一个由 28 行和 10 列组成的表。添加到 A1:A28 (第一列,所有行),我只想复制第 5 列和第 8 列及其所有行。 这就是我到目前为止所拥有的,但它不起作用。
Sub CommandButton1_Click()
Dim newWB As Workbook, currentWB As Workbook
Dim newS As Worksheet, currentS As Worksheet
Dim CurrCols As Variant
Dim rng As rang
'Copy the data you need
Set currentWB = ThisWorkbook
Set currentS = currentWB.Sheets("Feuil1")
'select which columns you want to copy
CurrCols = InputBox("Select which column you want to copy from table (up to 10)")
If Not IsNumeric(CurrCols) Then
MsgBox "Please select a valid Numeric value !", vbCritical
End
Else
CurrCols = CLng(CurrCols)
End If
'Set rng = currentWB.currentS.Range(Cells(1, A), Cells(27, CurrCols)).Select
currentS.Range("A1:A27").Select
Selection.copy
Set rng = currentWB.currentS.Range(Cells(1, CurrCols), Cells(28, CurrCols)).Select
rng.copy
'Create a new file that will receive the data
Set newWB = Workbooks.Add
With newWB
Set newS = newWB.Sheets("Feuil1")
newS.Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End With
End Sub
你能帮忙解决一下吗?提前致谢!
【问题讨论】:
-
“复制第 5 列和第 8 列及其所有行” 究竟是什么意思?发布输入和输出数据的示例
-
例如,我有一个表格作为输入,该表格由从 A 到 G 的 28 行和列组成。作为输出,我想从我的表格中获得一个 28 行和列 A、C 和 F 的表格输入(所以它由我输入的三列组成)
-
我在你的代码中哪里得到 1)“输入”表 2)要选择的列?
-
在 currentWB.currentS 我已经有了我的表格,我将选择我的列。就在评论之后:'选择要复制的列;我开始选择列,CurrCols 是我要复制的列 Set rng = currentWB.currentS.Range(Cells(1, CurrCols), Cells(28, CurrCols)).Select rng.copy 是复制此列并粘贴但它不起作用! currentS.Range("A1:A27").Select Selection.copy 只是复制所有行的第一列,因为我总是需要它