在 Excel VBA 项目中匹配相似但不完全相同的文本字符串

2024-02-10

好吧,我一直在努力寻找解决方案,但似乎找不到解决方案。我什至无法正确分解问题。这就是想法。

我有两张有很多行的表(一张有 800,另一张有 300,000)。每行包含一个名称列,然后包含有关该名称的信息的几列。每张纸都有不同种类的信息。

我想根据这两个工作表都具有的名称列将这两个工作表合并到一个主工作表中,因此合并功能非常适合此目的。现在的问题是名称不完全匹配。

例如 Sheet1 包含

“Company B.V.”、“信息#1”
“公司总计”,“信息 #2”
“有限公司”,“信息#3”

第 2 页包含

“公司和公司”,“信息#4”
“公司和公司”,“信息#5”

表 1 包含将要使用的所有名称(大约 100 个,但如上所述以不同的形式),表 2 包含多行中的所有这 100 个名称以及不在 100 列表中的名称,因此我不关心。

我将如何制作一个 VBA 代码项目,其最终结果将是这样的,主表:

“公司”、“信息#1”、“信息#2”、“信息#3”、“信息#4”、“信息#5”

对于其中的每一个“公司”(100 家名单)?

我确实希望有一个解决方案。我对 VBA 项目还很陌生,但我之前已经做过一些最少的编码。


我会将宏放在您的个人部分中,这样宏就可以在所有工作表中使用。通过录制虚拟宏并选择将其存储在个人宏工作簿中来执行此操作。现在您可以在此个人工作簿中手动添加新的宏和函数。

我刚刚尝试了这个(不知道原始来源),效果很好。

公式如下所示: =PERSONAL.XLSB!FuzzyFind(A1,B$1:B$20)

代码在这里:

Function FuzzyFind(lookup_value As String, tbl_array As Range) As String
Dim i As Integer, str As String, Value As String
Dim a As Integer, b As Integer, cell As Variant
For Each cell In tbl_array
  str = cell
  For i = 1 To Len(lookup_value)
    If InStr(cell, Mid(lookup_value, i, 1)) > 0 Then
      a = a + 1
      cell = Mid(cell, 1, InStr(cell, Mid(lookup_value, i, 1)) - 1) & Mid(cell, InStr(cell, Mid(lookup_value, i, 1)) + 1, 9999)
    End If
  Next i
  a = a - Len(cell)
  If a > b Then
    b = a
    Value = str
  End If
  a = 0
Next cell
FuzzyFind = Value
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Excel VBA 项目中匹配相似但不完全相同的文本字符串 的相关文章

  • 如何使用 VBA 将 mm/dd/yyyy 更改为 dd/mm/yyyy

    我在使用 VBA 将 mm dd yyyy 转换为 dd mm yyyy 日期格式时遇到问题 我有一个这样的表 仅供参考 该表是从报告工具自动生成的 字符串操作 或任何 Excel 函数可以提供帮助吗 希望知道如何解决这个问题的人可以给我一
  • 更改特定字符串的颜色

    有谁知道如果将特定单词输入文本区域 我如何更改它的颜色 例如 如果用户输入 你好我的朋友 它会动态地将 你好 更改为绿色 在google上花了很多时间 找不到任何相关的东西 谢谢 textareas 的设计目的不是选择性着色
  • 如何在 xslt 2.0 中解析字符串到日期

    是否可以像这样转换字符串30042013 2013 年 4 月 30 日 日期格式 所以我可以稍后在类似的函数中使用它format date 就像托马拉克说的 你可以使用substring and concat 要构建一个字符串 您可以将其
  • laravel中过滤后如何导出excel?

    我想仅导出视图刀片中过滤的数据 我正在使用 Laravel 7 和 maatwebsite excel 3 1 和 PHP 7 4 2 我浏览了文档并应用了这个 View a href class btn btn success i cla
  • Word通过vba宏删除tabe列出现错误

    我想将excel中的数据复制到word表中 然后从表中删除一些列 我可以将数据复制到表中 但是当我删除列时会出现错误 无法访问此集合中的各个列 因为该表具有混合的单元格宽度 我的代码 Public Tbl1 As Table Sub cal
  • 从另一列的子字符串创建列

    我有一个 Pandas 数据框对象 我想从现有列的子字符串创建新列 我的数据如下所示 Date variable want1 want2 want3 0 02 01 08 Australia Sydney A Australia Sydne
  • 如何在c中的某个位置终止字符指针?

    我试图通过设置空终止符来终止 c 中的字符指针 在特定位置 例如 如果我有一个 char 指针 char hi hello 我希望它是 hell 通过设置o为空 我尝试过使用 strcpy 来执行此操作 例如 strcpy hi 4 0 但
  • R:ifelse 中的字符串列表

    我正在寻找与 MySQL 中的 where var in 语句类似的东西 我的代码如下 data lt data frame id 10001 10030 cc1 rep c a b c 10 attach data data new lt
  • 如何限制firebase中的字符串长度

    我在 firebase 数据库中工作 我需要限制字符串字段的长度 我怎么做 到该字段的路径是 Col1 doc1 描述 也就是说 从集合 col1 开始 然后进入 doc1 然后对于 doc1 下的所有集合以及该集合下的所有文档 描述字段需
  • EPPlus Excel 行高不一致

    我已经使用 EPPlus 生成了一个 excel 文件 在 MS Office 2007 中一切似乎都很完美 但客户端使用的是 MS Office 2010 2013 并且在第 29 行之后未设置行高 这是一个非常奇怪的问题 我已经尝试了
  • 十六进制字符串的运行长度编码(包括换行符)

    我正在使用以下方法实现游程长度编码GZipStreamC winforms 应用程序中的类 数据以一系列由换行符分隔的字符串形式提供 如下所示 FFFFFFFF FFFFFEFF FDFFFFFF 00FFFFFF 在压缩之前 我将字符串转
  • 如何在EditText中显示格式化文本?

    现在我正在编写简单的笔记应用程序 我需要在 EditText 中显示格式化的单独选定文本 I tried EditText et EditText findViewById R id edittext String string int s
  • C 支持原始字符串吗?

    C 11 添加了对原始字符串文字的支持 例如 R foo A weird string foo C有这样的东西吗 如果有 标准是什么版本 C11 如果没有 有谁知道它是否正在计划中以及是否有编译器支持它 C有这样的东西吗 如果有 标准是什么
  • 为什么是 ”\?” C/C++ 中的转义序列?

    C C 中有四种特殊的非字母字符需要转义 单引号 双引号 反斜杠 和问号 显然是因为它们有特殊的含义 对于单身char 对于字符串文字 对于转义序列 但为什么是 其中之一 我今天读了教科书上的转义序列表 我意识到我已经never逃脱了 以前
  • 在 MS Word 中运行外部 vba 代码

    我可以将外部代码链接到 Word 文档吗 我有很多带有宏的 Word 文档 VBA 代码 全部使用相同的代码 我希望代码从外部源运行 而不是从所有这些文档中运行 这样 如果我必须更新代码 我只有一个地方需要更新 您可以创建一个模板并将其放入
  • 读取R中打开的Excel文件

    有没有办法将打开的Excel文件读入R 当Excel中打开一个excel文件时 Excel会对文件加锁 比如R中的read方法无法访问该文件 你能绕过这个锁吗 Thanks 编辑 这发生在带有原始 Excel 的 Windows 下 发生错
  • 获取两个字符串之间的公共部分c# [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我需要的是获取两个单词之间的共同部分并获取差异 例子 场景1 word1 感言 word2 Test 将返回 公共部分Test 不同之
  • 如何检测 Java 字符串中的 unicode 字符?

    假设我有一个包含 的字符串 我如何找到所有这些 un icode 字符 我应该测试他们的代码吗 我该怎么做呢 例如 给定字符串 A X 我想将其转换为 AYXY 我想对其他 unicode 字符做同样的事情 并且我不想将它们存储在某种翻译映
  • 删除Android所有语言中的字符串

    我有一个包含多个翻译的应用程序 我想删除一些字符串 我怎样才能重构并删除它们一次 例如在默认情况下strings xml文件并自动将删除传播到其他翻译的其他 strings xml 文件 您可以通过 Android Studio 中的 翻译
  • string.Compare 行为

    怎么会这样呢 这是从VS2008中的立即窗口获取的 string Compare 1 string Compare 0 0 1 从言论来看字符串比较 http msdn microsoft com en us library 84787k2

随机推荐

  • PHP 7.2 CURLFile 给出“无效文件名”警告

    我在使用 CURLFile 对象时遇到问题 curl file create 我尝试了多种方法 但无论我尝试什么 我最终都会在日志文件中收到 PHP 警告 并且该文件在我的 cURL 调用中被忽略 首先 一些信息 PHP 7 2 文件已确认
  • 每次查询后重新打开sqlite数据库的效率

    我目前正在龙卷风中的网络服务器上工作 但在尝试同时访问数据库的不同代码位时遇到问题 我通过简单地使用一个查询函数来简化这一点 该函数基本上可以执行此操作 但稍微更高级 def query command arguments db sqlit
  • 有没有办法在延迟运算符之后“取消”流

    我在使用 NgRx 的 Angular 应用程序中使用轮询方案 为了简化事情 我有如下内容 public stopPolling createEffect gt this actions pipe ofType actions stopPo
  • 有没有办法使用Python openpyxl从excel读取持续时间类型字段?

    我正在尝试从 Excel 文件读取持续时间字段 但我得到的是日期时间类型 而不是 timedelta 类型 因此 当持续时间值超过 24 小时时 python openpyxl 无法正确读取该字段 有没有使用 Python openpyxl
  • Yii2如何向外部url发送表单请求

    如何向外部 URL 发送重定向 POST 请求 我在控制器中的代码 if model gt load Yii app gt request gt post model gt validate send post request to ext
  • 如何延迟分配归零内存?

    据我了解 我必须做出选择calloc 这将分配归零内存 并且malloc 可以按需分配内存 是否有一个函数结合了这两个属性 或许可以直接拨打电话mmap 如果可以的话为什么calloc不做吗 有几种机制可以从操作系统获取预清零内存 mmap
  • JavaScript 服务器端?

    是否有可能使用 javascript 服务器端 从而不会在某些核心计算的页面源代码中显示 我正在开发一款游戏 代码的一个关键部分只需要在服务器端计算然后传回客户端 我的整个游戏都是用 Javascript 编写的 但大部分是客户端 这很好
  • 如何使用 blazor 读取剪贴板?

    我正在使用具有截屏功能的 Blazor Server 应用程序 我的目标是从剪贴板获取数据 我谈论的不仅是简单的文本 而且总体上是一些图像 文件 文本等 我有一个名为ClipboardService它使用Microsoft JSIntero
  • 如何在 C# 中读取 html 表 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions table thead tr td
  • Clojure 中的数字是否按区间排列?

    有没有比以下更好的方法 defn in interval Returns a predicate that tests if its argument falls in the inclusive interval a b a b fn x
  • 绘制箱线图时如何处理 NaN 值

    我正在使用 matplotlib 绘制框图 但有一些缺失值 NaN 然后我发现它不显示具有 NaN 值的列内的方框图 你知道如何解决这个问题吗 这是代码 import numpy as np import matplotlib pyplot
  • Python套接字无法正确关闭连接

    我是套接字编程的新手 遇到了一个令人费解的问题 我有一个 Windows 程序 我无法更改它 专有软件 但它尝试使用 tcp 套接字连接到特定的 ip 和端口 在我的 linux 机器上 我编写了一个小 python 脚本来为 win pr
  • 删除具有特定值的字典键[重复]

    这个问题在这里已经有答案了 我知道字典不应该以这种方式使用 因此没有内置函数可以帮助执行此操作 但我需要删除字典中具有特定值的每个条目 所以如果我的字典看起来像 NameofEntry1 0 NameofEntry2 DNC 我需要删除 可
  • 如何使用 rspec + capybara 重用不同功能中的场景

    假设我有一些场景想要在不同的上下文或 功能 下进行测试 例如 我有一些场景涉及用户访问某些页面并期望某些 ajax 结果 但是 在不同的条件或 功能 下 我需要执行不同的 后台 任务来更改应用程序的状态 在这种情况下 我需要一遍又一遍地运行
  • 如何使用 Retrofit 2 处理错误响应?

    如何使用 Retrofit 2 处理错误响应同步要求 我需要流程响应 在正常情况下返回 pets 数组 如果请求有错误参数 则返回错误 json 对象 我该如何处理这两种情况 我正在尝试使用this https futurestud io
  • 使用 docker 构建时出现“程序不包含适合入口点的静态‘Main’方法”,为什么?

    我在使用 Docker 时遇到问题 但找不到合适的解决方案 我正在尝试使用 NET SDK 2 1 构建 Docker 映像 问题是 当 Docker 尝试运行构建语句时 它失败了 错误输出是 CSC 错误CS5001 程序不包含静态 Ma
  • CMD.exe:将第二列输出获取到变量

    我需要以下命令第二列输出
  • 如何检查字符串是否包含两个星号字符?

    我们有一个字符串输入 以下组合是有效的 例如sunday sunday sun day sun day su nda y 如果它只包含一个星号 那么它是一个错误的输入 因此 鉴于上述输入 我如何检查字符串是否包含多个星号 int aster
  • md-grid-tile(角度材质)中的文本对齐不起作用

    text align在角材料中
  • 在 Excel VBA 项目中匹配相似但不完全相同的文本字符串

    好吧 我一直在努力寻找解决方案 但似乎找不到解决方案 我什至无法正确分解问题 这就是想法 我有两张有很多行的表 一张有 800 另一张有 300 000 每行包含一个名称列 然后包含有关该名称的信息的几列 每张纸都有不同种类的信息 我想根据