gpt4 book ai didi

vba - 更快相当于 worksheetfunction.Clean

转载 作者:行者123 更新时间:2023-12-04 22:03:13 25 4
gpt4 key购买 nike

因此,作为我正在处理的更大宏的一部分,我正在比较两个列表(简称 Omni 和 MV)。如果 Omni 列表中的值也在 MV 列表中,我想将该行从 Omni 复制到新的工作表中。我计划使用嵌套的 for 循环(下面的大纲)来执行此操作,但它仅在我清除 MV 列表上的额外换行符时才有效,我正在使用下面的第二组代码执行此操作。这需要很长时间(<50 个值需要 5 分钟),我想知道是否有人知道更快的方法。谢谢!

For i = 2 To OmniLastRow Step 1
OmniValue= Workbooks(OmniFileName).Worksheets("pcr").Cells(i, 1)
Workbooks(MVFileName).Worksheets(Yesterday & "_ORPCR_MVTest").Activate
For j = 1 To MVLastRow Step 1
If Cells(j, 1).Value = OmniValue And Cells(i, 5).Value <> "0" Then
Workbooks(OmniFileName).Worksheets("pcr").Rows(i).Copy
MsgBox Cells(j, 1).Value
End If
Next j

set rng = workbooks(MVFileName).Worksheets(Yesterday & "_PCRMV").activate
For each cell in rng
cell.value = WorksheetFunction.Clean(cell.value)
Next Cell

最佳答案

难怪代码需要时间。您正在工作表中的每个单元格上运行它。

将范围限制为仅包含数据的行和列,例如

set rng = workbooks(MVFileName).Worksheets(Yesterday & "_PCRMV").UsedRange
For each cell in rng
cell.value = WorksheetFunction.Clean(cell.value)
Next Cell

关于vba - 更快相当于 worksheetfunction.Clean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30586225/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com