【发布时间】:2016-07-19 16:29:41
【问题描述】:
我是一个全新的 VBA 用户,尝试根据日期范围复制和粘贴数据。在第一列我有日期,在第二列我有我想复制和粘贴的数据。 CurYear 是指我正在寻找的范围内的结束日期,而 StatDate 是指我正在寻找的范围内的开始日期。当我运行此代码时,它会使 Excel 崩溃。请帮助我很迷茫
Worksheets("Weekly").Select
Dim nRows As Integer
Dim CurYear As Date
Dim StartDate As Date
nRows=Range("A1").CurrentRegions.Count.Rows
CurYear=Range("I265").Value
StartDate=Range("M5").Value
Do While Cells(nRows,1)<>""
if Cells(nRows,1).Value< CurYear & Cells(nRows,1)> StartDate Then
Cells(nRows,1).Offset(0,1).Copy
Worksheets("Weekly").Range("H41").Paste
Loop
End If
【问题讨论】:
-
我只要让 Cells(nRows,1).Offset(0,1).value = Worksheets("Weekly").Range("H41").value,不需要复制粘贴
-
另外,结束 if 应该在循环之前,我得到 currentregions.count.rows 的错误。我可能会通过将变量设置为 A1 并将另一个变量设置为最后使用的单元格来创建适当的范围 (Worksheets("Sheet1").Activate ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Address)
-
在调试器中按F8,哪一行崩溃了?
-
Lowpar 我对如何在 do while 循环中调用单元格范围感到有些困惑。这就是我所拥有的,我应该如何填写空白 CurYear = Range("I265").Value StartDate = Range("M5").Value x = Range("A1") y = Range("A1").End (xlDown) 在单元格中做_____ ""
-
@ScottCraner - 或者可能是
nRows = nRows - 1? (从nRows=Range("A1").CurrentRegions.Count.Rows有点难以分辨,但如果它是nRows=Range("A1").CurrentRegion.Rows.Count,那么 nRows 从最后开始,所以需要向下工作。)