gpt4 book ai didi

arrays - Excel VBA 搜索大数组

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

所以我找到并修改了一个适合我需要的宏,但是有一个限制。我正在构建一个宏来搜索医疗支付数据以获取特定的诊断代码和程序代码。在我目前正在进行的项目中,只有14个诊断代码,所以我能够将其直接放入VBA中。然而,有超过 800 个程序代码我无法放入 VBA 中。我能够执行单独的 VBA 步骤来引入包含此数据的表,但我似乎无法将其设置为针对该表进行搜索。但话虽这么说,对如此大量的项目运行 VBA 搜索的最佳方法是什么?

Sub PROCEDURE_1_search()
Dim FirstAddress As String
Dim MySearch As Variant
Dim myColor As Variant
Dim Rng As range
Dim I As Long

MySearch = Array("412", "4100", "4101", "4102", "4103",...) <-- have over 800

With Sheets("All Claims by Date of Service").range("G5:G55000")
For I = LBound(MySearch) To UBound(MySearch)
Set Rng = .Find(What:=MySearch(I), _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
FirstAddress = Rng.Address
Do
With ActiveSheet.range("B" & Rng.Row & ":O" & Rng.Row)
.Font.ColorIndex = 1
.Interior.ColorIndex = 4
End With
Set Rng = .FindNext(Rng)
Loop While Not Rng Is Nothing And Rng.Address <> FirstAddress
End If
Next I
End With
End Sub

我可能会想出一个答案,但没有提出正确的问题。如果有什么需要澄清的地方,请告诉我,并提前感谢您提供的帮助。

-瑞安

最佳答案

为了搜索数组,我建议您将数据转储到变体数组中,而不是遍历范围。这样就减少了在代码和工作表上来回的流量——特别是格式化。格式化无论如何都很昂贵,就你而言,它似乎花费了你一个月..

以下是具体步骤:(不是代码 - if you need a code take a look at these samples. )。

  1. 将数据转置为变体数组
  2. 在 VBA 代码中根据需要进行搜索
  3. 将数据转储到位置(范围)
  4. 格式(范围)

关于arrays - Excel VBA 搜索大数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101933/

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