使用数组 VBA 查找并替换数据库中的值

2023-12-31

我有一个脏数据库,每个人的名字都以不同的方式写入,我无法将它们分组。

我想创建一个宏来使用两列列表查找和替换数据库中的名称。

我找到了以下代码,但我无法理解它,因此无法修改它:

Dim Sht As Worksheet
Dim fndList As Integer
Dim rplcList As Integer
Dim tbl As ListObject
Dim myArray As Variant
Dim Rng As Range


'Create variable to point to your table
  Set tbl = Worksheets("How to").ListObjects("Table2")

'Create an Array out of the Table's Data
  Set TempArray = tbl.DataBodyRange
  myArray = Application.Transpose(TempArray)

'Designate Columns for Find/Replace data
  fndList = 1
  rplcList = 2

'Loop through each item in Array lists
  For x = LBound(myArray, 1) To UBound(myArray, 2)
    'Loop through each worksheet in ActiveWorkbook (skip sheet with table in it)
      For Each Rng In Worksheets("xxxxxxxxxx").Activate
        If Rng.Name <> tbl.Parent.Name Then

          Rng.Cells.replace What:=myArray(fndList, x), Replacement:=myArray(rplcList, x), _
            LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _
            SearchFormat:=False, ReplaceFormat:=False

        End If
      Next Rng

  Next x

End Sub

我已经调整了您的代码,您可以在下面看到;夫妇注意事项:

1-使用 Option Explicit 总是一个好主意 2-如果将数组循环放入工作表循环中,则只需执行工作表名称检查n次(n=工作簿中的工作表数量),如果将工作表循环放入数组循环中,则必须执行工作表名称检查 n*x 次(x = 数组中的项目数)... 3-您没有指定,但我假设您的 Table1 是垂直结构的,查找值位于第一列,替换值位于第二列-因此无需转置数组;如果您的 Table1 实际上是水平的,那么您需要调整此代码......

Public Sub demoCode()
Dim sheetName As String
Dim tableRange As Range
Dim myArray() As Variant
Dim wsCounter As Long
Dim rowCounter As Long

'Store name of sheet with lookup table
sheetName = "How to"

'Create an Array out of the Table's Data
Set tableRange = ThisWorkbook.Sheets(sheetName).ListObjects("Table1").DataBodyRange
myArray = tableRange

'Loop through each sheet
For wsCounter = 1 To ThisWorkbook.Sheets.Count
    With ThisWorkbook.Sheets(wsCounter)
        'Test to make sure the sheet is not the sheet with the lookup table
        If .Name <> sheetName Then
            'Loop through each item in lookup table
            For rowCounter = LBound(myArray, 1) To UBound(myArray, 1)
                'Replace any cells that contain whats in the first column of the lookup table, with whats in the 2nd column..
                .Cells.Replace What:=myArray(rowCounter, 1), Replacement:=myArray(rowCounter, 2), LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
            Next
        End If
    End With
Next

End Sub

希望这可以帮助, 丝绸密码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用数组 VBA 查找并替换数据库中的值 的相关文章

  • JS:连接数组的数组

    我如何在数组的每个子成员和数组本身上使用 Array Join 来分隔父数组的元素 以及子数组的每个元素 let arr 1 2 3 4 5 6 console log arr join Output is 1 2 3 4 5 6 Pseu
  • 如何循环结构体数组并显示所有键值

    我正在循环结构数组并尝试分配和存储所有键值 如果我将内循环包裹起来
  • 如何将我的 json 字符串 avro 二进制编码为字节数组?

    我有一个实际的 JSON 字符串 我需要将其 avro 二进制编码为字节数组 在经历了Apache Avro 规范 http avro apache org docs 1 7 7 spec html 我想出了下面的代码 我不确定这是否是正确
  • 将数组字段组合成单个数组字段 mongo

    我正在使用 mongo 版本 3 4 3 我的文档存储在 mongo 中 如下所示 id ObjectId 5ad5ab8aaf2808b739ba6ab2 ResumeId 105839064 ResumeDetails WorkProf
  • VSTO 替代方案 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 VSTO 有哪些替代方案 ManagedXll 能做什么而 VSTO 不能 你什么时候使用其中一个而不
  • VBA在多个文件夹中搜索特定子文件夹并移动其中的所有文件

    你能帮助我吗 我想要一个宏vba来搜索SPECIFIC例如 所有存在并移动其文件的文件夹和子文件夹之间的子文件夹 Xfolder P Desktop Folder1 subfolder SUBFOLDER1 Xfolder 我正在使用 VB
  • Swift 使用哪种通用排序算法?它在排序数据上表现不佳

    我一直在挑选和探索 Swift 标准库sort 其函数为Array类型 令我惊讶的是 我注意到它在已经排序的数据上表现不佳 对数组进行排序Int打乱顺序似乎比对已经排序的同一个数组进行排序快 5 倍 对已打乱顺序的对象数组进行排序比对已按排
  • 启动时的 Excel 加载项

    我正在使用 Visual C 创建 Microsoft Excel 的加载项 当我第一次创建解决方案时 它包含一个名为 ThisAddIn Startup 的函数 我在这个函数中添加了以下代码 private void ThisAddIn
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • 将数组作为参数传递

    如果我们修改作为方法内参数传递的数组的内容 则修改是在参数的副本而不是原始参数上完成的 因此结果不可见 当我们调用具有引用类型参数的方法时 会发生什么过程 这是我想问的代码示例 using System namespace Value Re
  • Arrayadapter.getcount 空点异常

    我得到以下堆栈跟踪 下面是完整的副本 这几乎没有或根本没有表明大型应用程序中出现错误时的位置 并且用户反馈除了 崩溃 之外什么也没有 我能做些什么来进一步查明这一点吗 java lang NullPointerException at an
  • 通过 Excel / VBA 调用 DLL 中的 C++ 函数在传递双参数时生成异常

    我试图通过 DLL 在 Excel VBA 中使用 C C 静态函数 我在 VS17 中调试时遇到异常 我怀疑这是参数传递方式的问题 它是双精度 EXCEL EXE 中 0x00007FFA28BBA14F kernel32 dll 处抛出
  • TypeScript 枚举到对象数组

    我有一个这样定义的枚举 export enum GoalProgressMeasurements Percentage 1 Numeric Target 2 Completed Tasks 3 Average Milestone Progr
  • 通过传递单个值获取多个索引[重复]

    这个问题在这里已经有答案了 可能的重复 列表索引搜索 https stackoverflow com questions 11292260 list index search 我必须在 int 中获取索引 其中值是相同的 因此我必须在 in
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 如何将 UDF 中的结构或类数组返回到数据帧列值中?

    d ID 1 pID 1000 startTime 2018 07 02T03 34 20 endTime 2018 07 03T02 40 20 ID 1 pID 1000 startTime 2018 07 02T03 45 20 en
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9
  • 如何在Java中正确删除数组[重复]

    这个问题在这里已经有答案了 我刚接触 Java 4 天 从我搜索过的教程来看 讲师们花费了大量精力来解释如何分配二维数组 例如 如下所示 Foo fooArray new Foo 2 3 但我还没有找到任何解释如何删除它们的信息 从内存的情
  • 结构体指针的动态数组

    我必须使用以下代码块来完成学校作业 严格不进行任何修改 typedef struct char firstName char lastName int id float mark pStudentRecord pStudentRecord
  • Access / Word 2010 VBA 邮件合并尝试打开 [文件夹名称].mdb 而不是 ACCDB 源

    我们正在尝试从 Access 中自动执行邮件合并过程 单击按钮后 VBA 将运行指定当前数据库 accdb 作为数据源并运行 SQL 具体代码如下 Set up Word Dim objWord As Object Set objWord

随机推荐

  • Jquery 附加内容 - 不可点击

    我有以下JQ 它基本上是添加一个小图标 允许在选择列表项时进行一些内联 编辑 但是 我无法使用 jquery 添加的内容 当我单击 JQ 添加的内容时 我什至无法将任何内容记录到控制台 我下面的代码有问题吗 我无法添加小提琴 因为我没有此列
  • 如何让WorkManager始终在后台运行

    我如何让 WorkManager 始终在后台运行 无论应用程序是否关闭 终止 打开 它都应该始终运行 我已经编码了doWork检查数据库中的更改并在数据库发生更改时发送通知的方法 因此 它应该始终在 bg 中运行以检查更改 那么我应该用什么
  • 在nodejs中使用for windows的forever模块

    我从以下链接下载了forever模块 https github com nodejitsu forever https github com nodejitsu forever 我提取了 zip 文件并将其放置在我的 node module
  • 可以将参数传递给 WPF 用户控件吗?

    可以将值或参数传递给 WPF 用户控件吗 我正在使用 MVVM 模式
  • 与迭代器创建的流的并行性

    在对流进行实验时 我遇到了以下我不太理解的行为 我从迭代器创建了一个并行流 我注意到它似乎没有表现出并行性 在下面的示例中 我在控制台上打印了两个并行流的计数器 一个是从迭代器创建的 另一个是从列表创建的 从列表创建的流表现出了我预期的行为
  • 无法将信号连接到另一个类中的插槽

    我有2节课 A 类和 B 类 我从 A 类发出信号 希望 B 类接收该信号 我正在按照以下方式做 在监听器文件中 Header File Class Listener public DDSDataReaderListener Some co
  • 实体框架“实体对象不能被 IEntityChangeTracker 的多个实例引用”

    我收到错误 实体对象不能被多个实例引用 IEntityChangeTracker 当尝试创建新实体并将其保存到数据库时 我了解该错误以及它通常是如何发生的 但在这种情况下 我所做的就是创建一个新实体并添加一些int在保存之前添加到它 而不是
  • UIImagePickerController:没有调用 didFinishPickingMediaWithInfo

    希望你们一切都好 想知道是否有人可以帮助我理解为什么 Xcode 不能很好地配合我 我已将代码分为以下几个部分 以便我可以从 UIImagePicker 中选择个人资料照片 作品 为 ImagePicker 和 NavigationCont
  • 类型引用在 MergedDictionary 上找不到名为“{clr-namespace:xxx}ClassName”的类型

    我收到了异常Type reference cannot find type named clr namespace Dashboard View DashBoardColors在运行时 我有一个带有我的颜色的静态类 namespace Da
  • mean( ,na.rm=TRUE) 仍然返回 NA

    我对 R 非常陌生 从 SPSS 转移过来 我在运行 Mavericks 的 Mac 上使用 RStudio 请用两个音节的单词回答我的问题 因为这是我第一次真正尝试类似的事情 我已经完成了一些基本教程 并且可以使所有示例数据都正常工作 我
  • React 中从右到左 (RTL) 支持

    在 React 应用程序中实现 RTL 支持的最佳方式是什么 有没有办法覆盖默认值 p and span 标签 组件 来添加 RTL 支持 这样我就不必重写我已经编写的组件来支持 RTL 例如 有一些全局变量window RTL 所以当设置
  • 如何扩展 Draft-js-emoji-plugin 的主题

    我只需要扩展几个 CSS 规则草稿 js emoji 插件 https github com draft js plugins draft js plugins 记录的方式是通过theme对象配置 const theme emojiSele
  • java.lang.NoClassDefFoundError: org/openqa/selenium/remote/internal/JsonToWebElementConverter

    我正在尝试运行appium的第一个程序 但出现下面提到的错误 我已经下载了最新的 selenium 4 jar 和 java client appium jars 仍然显示 noClassFoundException 任何帮助 将不胜感激
  • vis.js setOptions 更改网络节点上的颜色

    我正在使用 vis js 来显示网络节点 我正在解析 JSON 中的节点数据并将其存储在数组中 each jsonObj function i val var itemId val id var itemGroup val group va
  • 如何使用 Console.WriteLine() 多次打印相同的字符[重复]

    这个问题在这里已经有答案了 可能的重复 有没有一种简单的方法可以返回重复 X 次的字符串 https stackoverflow com questions 3754582 is there an easy way to return a
  • 按键冷却时间

    我正在开发水平 2D 无限跑步者的个人项目 我在跳跃机制上遇到问题 玩家可以按住跳跃按钮并在接触地面后立即跳跃 我想强迫玩家释放按钮才能再次跳跃 我想在他漂浮时制作相同的机制 在跳跃结束时 当玩家开始下落时 其 y 速度会减少几秒 我遵循单
  • 如何解决 .NET CF 异常“找不到 PInvoke DLL”?

    谨此献给所有 C 专家 我已经为此烦恼了一段时间了 尝试了网上的各种建议 但没有成功 该操作发生在 Windows Mobile 5 0 中 我有一个名为 MyDll dll 的 DLL 在 MyDll h 中我有 extern C dec
  • 事件跟踪不起作用

    我正在尝试使用以下脚本将 Google 的事件跟踪集成到我的应用程序中 我可以在 实时 选项卡中查看事件 但我无法在 内容 选项卡中看到事件 var gaq gaq gaq push setDomainName none gaq push
  • JNI UnsatisfiedLinkError 没有错误的方法名称并且指定了库路径

    我正在尝试按照本教程构建我的第一个 JNI 应用程序 https www3 ntu edu sg home ehchua programming java JavaNativeInterface html https www3 ntu ed
  • 使用数组 VBA 查找并替换数据库中的值

    我有一个脏数据库 每个人的名字都以不同的方式写入 我无法将它们分组 我想创建一个宏来使用两列列表查找和替换数据库中的名称 我找到了以下代码 但我无法理解它 因此无法修改它 Dim Sht As Worksheet Dim fndList A