【发布时间】:2020-10-19 11:03:30
【问题描述】:
我需要您的帮助来修复此代码。此代码的目标是设置一个范围。找到第一个“To Date”,然后选择“To Date”下的所有单元格,将值粘贴到前面的单元格中(例如,第一个“To Date”在单元格 F4 中包含来自 F5:F“N”的值(N=最后一行)然后将 F5:F"N" 值粘贴到 E5:E"N" 中,然后转到下一个 To Date。
我在这段代码中面临的问题是
-
代码不会选择“To Date”下的最后一行(第一次除外)
-
无限循环运行的代码不会在最后一个“To Date”之后停止
Sub FindAddressColumn() Dim twb As ThisWorkbook Dim ws As Worksheet Dim lastRow As Long Dim LastCol As Long Dim lr As Long Dim getLastCell As Range Dim firstAddress As String Dim rngAddress As Range Const strFindMe As String = "To Date" Set twb = ThisWorkbook For Each ws In twb.Worksheets If ws.Name = "QCR Summary" Then lastRow = ws.Cells.Find("*", ws.Cells(1, 1), xlFormulas, xlPart, xlByRows, _ xlPrevious).Row LastCol = ws.Cells.Find("*", ws.Cells(1, 1), xlFormulas, xlPart, xlByColumns, _ xlPrevious).Column Set getLastCell = ws.Cells(lastRow, LastCol) With ws.Range("A1", getLastCell) Set rngAddress = .Find(What:=strFindMe, LookIn:=xlValues) If rngAddress Is Nothing Then Exit Sub End If firstAddress = rngAddress.Address Do Set rngAddress = .FindNext(rngAddress) Range(rngAddress, rngAddress.End(xlDown)).Select 'MsgBox rngAddress.Address Loop While Not rngAddress Is Nothing And rngAddress <> firstAddress End With End If Next ws End Sub
【问题讨论】:
-
您能否发布一些示例数据(图片)和/或说明您如何识别每个
ToDate范围,即它们之间是否有空单元格?
标签: excel vba excel-2010