【发布时间】:2017-04-25 05:37:46
【问题描述】:
我有一个程序需要复制同一工作簿和工作表中的选定列。 当前代码导致Excel崩溃,所以我不确定它是否工作。
有没有更好的方法来复制具有相同工作簿的相同工作表中的列?
代码:
Sub Macro1()
Dim wb1 As Workbook
'Set it to be the file location, name, and file extension of the Working File
Set wb1 = Workbooks.Open("Z:\XXX\Working File.xlsx")
MsgBox "Copying Fields within Working File"
wb1.Worksheets(1).Columns("G").Copy wb1.Worksheets(1).Columns("H").Value
wb1.Worksheets(1).Columns("J").Copy wb1.Worksheets(1).Columns("O").Value
wb1.Worksheets(1).Columns("K").Copy wb1.Worksheets(1).Columns("N").Value
wb1.Worksheets(1).Columns("M").Copy wb1.Worksheets(1).Columns("P").Value
wb1.Close SaveChanges:=True
End Sub
【问题讨论】:
-
最后去掉
.Value。您只想复制到一个范围,而不是值。但是,如果你只需要值而不是格式化/等,你可以做Range([Destination Range]).Value = Range([copy range]).Value,即wb1.Worksheets(1).Columns("H").Value = wb1.Worksheets(1).Columns("G").Value。另外,你需要使用整个列吗? -
啊,我补充说,因为客户想要一个仅粘贴值的选项,我认为这就是你可以做到的方式
-
我确实需要整列
-
现在很少需要整列,即 1048576 个单元格,其中大部分是空的。
-
@DylanF - 我们可以用一两行简单的代码来处理。如果行随时间变化,您只需要为每一列获取
lastRow。但就目前而言,如果它有效,它就有效!