【发布时间】:2020-06-11 20:00:57
【问题描述】:
我已经有一段时间没有做任何类型的编码了,所以我很生疏。 我正在尝试编写一些 VBA 代码,以便在 Excel 工作表中单击一个按钮时,它将检查同一工作簿中的另一个工作表和特定单元格值的副本。这是基于其中一列中的标准(我数了第 15 列);我可能应该补充一点,数据在表格中。如果该行符合第 15 列中的指定条件,则使用按钮将特定列复制到工作表中。
我确实有一些代码,但我知道其中缺少很多东西。
不胜感激,我在正确的轨道上吗?任何人都可以在那里提供帮助,我可以获得有关我需要使用的编码的更多信息和提示。不确定是否有使用表格的简单方法?
Private Sub CommandButton1_Click()
''This will count how many rows are populated in the table''
a = Worksheets("Billable").Cells(Rows.Count, 1).End(xlUp).Row
''Loop will run from row 6 to the last row (Row 6 is the first row in table)''
For i = 6 To a
''If statement which will check the status column for Detailed Estimate Submitted > column 15''
If Worksheets("Billable").Cells(i, 15).Value = "Detailed Estimate Submitted" Then
Worksheets("Billable").Rows(i).Copy
Worksheets("PM_Forecast").Activate
b = Worksheets("PM_Forecast").Cells(Rows.Count, 1).End(xlUp).Row
Worksheets("PM_Forecast").Cells(a + 1, 1).Select
ActiveSheet.Paste
End If
Next
Application.CutCopyMode = False
End Sub
表格示例:- 如果它们满足状态列中的特定条件,我只需要复制超过 3 列
【问题讨论】:
-
您也需要复制格式/公式吗?还是只有价值观?我问的是为了了解可以使用最快的复制方法(使用数组)...
-
我认为这可以通过公式来实现。如果您可以提供工作表样本和预期结果,将会有所帮助
-
我只需要将单元格中的值在满足特定 cireteria 时复制到工作表中。我需要每隔几天运行一次,因此每次复制信息之前可能都需要清除工作表。在问题中添加了表格示例