VBA - 范围选择 - 严重的麻烦

时间:2013-10-02 06:43:29

标签: excel vba excel-vba

我只是想将一个WB的内容复制到另一个

strColNos = Range(Cells(65536, rngSMonthYr.Column).Address(False, False)).End(xlUp).Row
For intLastCell = 2 To strColNos
    strCell1 = Cells(intLastCell, rngSMonthYr.Column).Address(False, False)
    strCell2 = Cells(intLastCell, rngDMonthYr.Column).Address(False, False)

    Workbooks(wkbSource).Sheets(wsSource).Range(strCell1).Copy _
        Destination:=Workbooks(wkbDestination).Sheets(wsDestination).Range(strCell2)
Next intLastCell

strCell1的值为“D2”(源书),strCell2的值为“F2”(目的地书)

rngSMonthYr,rngDMonthYr基本上是输入框,用户可以从源页和目标表中选择特定月份。我需要将选定源列中的所有行复制到选定的目标列。

任何帮助都将受到高度赞赏。

谢谢, 亚伦

1 个答案:

答案 0 :(得分:0)

无需遍历每个单元格。此外,您可以解决范围,而无需始终将它们转换为地址字符串。此代码应该满足您的需求:

intLastRow = Cells(65536, rngSMonthYr.Column).End(xlUp).Row
Sheet1.Cells(2, rngSMonthYr.Column).Resize(intLastRow - 1).Copy _
    Sheet2.Cells(2, rngDMonthYr.Column).Resize(intLastRow - 1)

我不确定,如果您需要使用rngSMonthYr.Column - 或rngSMonthYr是否足够。如果单元格包含列号,则.Column错误,必须省略。