2010-12-22 81 views
0

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

[代码]

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." 

[/代码]

+0

看起来有些初始化代码丢失 – 2010-12-22 19:27:50

回答

0

首先请把你的整个代码,这会更容易发现问题。 然后我没有看到你什么时候改变while循环的条件,所以基本上循环永远不会结束。这个行对我来说似乎是错误的,方法Cells以两个数字作为参数,所以“q”可能是你得到的原因这个错误。 为了解决这个问题,请使用如下所示的Methode范围:Range(“Q65535”)或Cells(65535,17)

相关问题