Excel 2003 VBA定位&复制到新工作表

时间:2010-12-22 19:06:43

标签: excel-vba excel-2003 vba excel

我试图让这段代码在12月内找到任何日期并将其复制到同一工作簿中的工作表中。 LSheetL是我的12月标签。我已经创建了其他11个月的标签,并且每个月都要复制这段代码,是否有更简单/更整合的方式来实现逐月扫描/复制/粘贴到适当的标签? - 我的问题是,无论何时执行此代码,它都会给我一个“Microsoft Visual Basic - 运行时错误'1004' - 应用程序定义或对象定义的错误”。有任何想法吗?我正在考虑抓取这些代码并采用另一种方法,但我想看看我是否可以在我跳过之前解决这个问题。我也被告知,激活不同的工作表不是从这里获取数据的“最漂亮”方法,是否有更好的方法来执行此功能?谢谢你的帮助。

[code]

While LContinue = True

    LastRow = Cells(65535, "q").End(xlUp).Row

        If Month(Range("Q" & CStr(LRow)).Value) = 12 Then

        Range("E" & CStr(LRow) & ",G" & CStr(LRow) & ",K" & CStr(LRow) & ",O" & CStr(LRow) & ",P" & CStr(LRow) & ",Q" & CStr(LRow) & ",AK" & CStr(LRow)).Select
        Selection.Copy

            Sheets(LSheetL).Activate
            Range("A" & CStr(LCurPRow)).Select
            Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
            Range("A1").Select

            LCurPRow = LCurPRow + 1

            Sheets(LSheetMain).Activate

        End If

    LRow = LRow + 1

Wend

MsgBox "The copy has completed successfully."

[/代码]

1 个答案:

答案 0 :(得分:0)

首先请发布您的整个代码,这样会更容易找到问题。 然后我没有看到你何时改变你的while循环的条件,所以基本上循环永远不会结束。

LastRow = Cells(65535,“q”)。End(xlUp).Row 这条线对我来说似乎不对,单元格方法取两个数字作为参数,所以“q”可能就是你得到这个错误的原因。 要进行此操作,请使用Methode范围,如下所示:范围(“Q65535”)或单元格(65535,17)