我正在尝试创建一个动态范围,该范围将从固定的一组单元格中恢复所有结果,不幸的是,我在Range.End
方法上遇到了麻烦,因为它们之间有空格。例如,A8:A10
中可能没有值,但它可能始于A11
,并且该行中将包含数据。所有表格都会有所不同,但固定在下面的单元格区域。
我还看到了Range.Find
,但我也无法使它正常工作。
单元格范围是:A8:F18
lastRow = ThisWorkbook.Worksheets("Sheet2").Cells(Rows.Count, 2).End(xlUp).Row + 1
ThisWorkbook.Worksheets("Sheet2").Range("B" & lastRow).Formula = _
Source.Worksheets("SUMMARY DATA SHEET").Range("A8").Value
ThisWorkbook.Worksheets("Sheet2").Range("D" & lastRow).Formula = _
Source.Worksheets("SUMMARY DATA SHEET").Range("D8").Value
ThisWorkbook.Worksheets("Sheet2").Range("A" & lastRow).Formula = _
Source.Worksheets("SUMMARY DATA SHEET").Range("B4").Value
ThisWorkbook.Worksheets("Sheet2").Range("E" & lastRow).Formula = _
Source.Worksheets("SUMMARY DATA SHEET").Range("F8").Value
ThisWorkbook.Worksheets("Sheet2").Range("C" & lastRow).Formula = _
Source.Worksheets("SUMMARY DATA SHEET").Range("E8").Value
A B C D E F
10 vendor1 ACH vendor1 500.00 XXX 0118-CLIENT-XLIVES
11 vendor2 ACH vendor2 600.00 XX 0118-CLIENT-XLIVES
12 vendor3 ACH vendor3 400.00 XX 0118-CLIENT-XLIVES
13 vendor4 ACH vendor4 $900.00 XXX 0118-CLIENT-XLIVES
14 vendor5 ACH vendor5 $6,000.00 0118-CLIENT-XLIVES
15 vendor6 ACH vendor6 $800.00 0118-CLIENT-XLIVES
16 vendor7 ACH vendor7 $88,000.00 0118-CLIENT-XLIVES
答案 0 :(得分:0)
听起来您需要在Range("A8:A18")
中找到包含数据的第一行,如果该假设正确,那么这是一个示例:
Sub foo()
Dim Source As Workbook
Dim wsTarget As Worksheet, wsSource As Worksheet
Dim sourceRange As Range
Dim targetLastRow As Long, sourceFirstRow As Long
Set Source = ThisWorkbook ' ### MODIFY AS NEEDED
Set wsSource = Source.Worksheets("Sheet1") '#Source.Worksheets("SUMMARY DATA SHEET")
Set sourceRange = wsSource.Range("A8:A18")
sourceFirstRow = sourceRange.Find("*", After:=wsSource.Range("A8")).Row
Set wsTarget = ThisWorkbook.Worksheets("Sheet2")
targetLastRow = wsTarget.Cells(Rows.Count, 2).End(xlUp).Row + 1
wsTarget.Range("B" & targetLastRow).Value = _
wsSource.Range("A" & sourceFirstRow).Value
wsTarget.Range("D" & targetLastRow).Value = _
wsSource.Range("D" & sourceFirstRow).Value
' etc...
End Sub
如果您要从第8-18行中所有有数据的单元格中传输数据,并且还假设第一行之后 的每一行都有数据,那么我认为您只需要修改{ {1}},并使用sourceRange
对目标进行一些更改:
Resize