【发布时间】:2018-08-21 16:35:15
【问题描述】:
我想提取新工作表 (sheet2) 列中的所有“发票”值。现在我只能从 Invoice 中获取单个值(而不是获取所有值)。
请查看以下代码:
Sub MergeData()
a = Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row
For i = 2 To a
If Worksheets("Sheet1").Cells(i, 4).Value = "Rechnungen / invoices" Then
Worksheets("Sheet1").Cells(i + 2, 4).Copy
Worksheets("Sheet2").Activate
b = Worksheets("Sheet2").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("Sheet2").Cells(b + 1, 3).Select
ActiveSheet.Paste
Worksheets("Sheet1").Activate
End If
Next
End Sub
实际上我是宏的初学者,我不知道如何添加循环和条件来获取所有值。
布局:
【问题讨论】:
-
是合并单元格还是删除了网格线?
-
Rechnungen 会一直是 D25 吗?似乎不是您的代码。此外,您将如何确定何时停止在 D 和 E 列中查找发票编号?有什么东西可以用来确定何时停止?例如,单元格周围的一种边框?此外,发票能否继续跨越 F 列等?同样的问题,您如何确定发票何时停止跨列?右侧是否还有其他数据,或者您可以假设最后使用的列是发票必须停止的地方?还是有更好的办法?
-
您将如何确定何时停止查看发票编号的行?
-
我还会在 D 列上使用 Range.Find 方法来定位带有“Rechnungen / invoices”的单元格。
-
1. Rechnungen 会一直是 D25 吗? ---> 不。它会在 D 列/行中有所不同。 2]您将如何确定何时停止沿着 D 和 E 列寻找发票号码?---> 我不知道。但是如果我们应用任何条件,那么它是可能的(不确定)。 3]此外,发票能否继续跨列 F 等?----> 它从 D 到 F。 4]右侧是否有其他数据,或者您可以假设最后使用的列是发票必须停止的地方?- -> 是的。 F 将是最后一个。