vba - 如果单元格包含某些东西,那么
问题描述
我正在编写一个基本宏,如果另一个单元格中有某个单词,它将帮助用一个值填充单元格。这是我的代码:
Sub SSS()
For i = 2 To lastrow
If Cells(i, 4).Text = ("x") Then Cells(i, 2) = "a"
Next i
End Sub
但是单元格 d2 也包含其他单词,因此如果单元格 d2 中有“x a”,则单元格 b2 中不会返回任何值。我怎样才能解决这个问题?
解决方案
您可以将正则表达式与模式中包含的单词边界一起使用。假设它确实是您正在寻找的词。
代码:
Option Explicit
Public Sub SSS()
Dim lastRow As Long, i As Long
Const WORD As String = "Hello" '<== Word you are looking for
lastRow = 6
With ThisWorkbook.Worksheets("Sheet1")
For i = 2 To lastRow
If Found((.Cells(i, 4).Value2), "\b(" + WORD + ")\b", False) Then .Cells(i, 2) = "a"
Next i
End With
End Sub
Public Function Found(ByVal t As String, ByVal inputPattern As String, Optional ignoreCaseOption = True) As Boolean
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
With reg
.Global = True
.MultiLine = True
.ignoreCase = ignoreCaseOption
.pattern = inputPattern
If .test(t) Then Found = True
End With
End Function
带输出的示例数据:
正则表达式信息:
推荐阅读
- javascript - SAPUI5:表 - 项目扩展到 40 多个条目
- java - 当我从应用程序向其他应用程序发送 10 个请求时,Zipkins(在 Spring Boot 应用程序中)没有存储所有跟踪 ID
- html - 在 section,article 和 nav 中,我希望该部分位于页面中间
- python - Python:为什么 np.where 不能在两个条件下工作?
- python - python中两个值之间的指数增长
- angular - ag-grid 中的标签导航问题
- c# - 如何在插入大型数据集后首先以编程方式重建代码中的所有索引(C# 和 EntityFrameworkCore)创建的 SQL Server 表
- c# - 让隐式派生类构造函数调用基类构造函数
- maven - 没有 kotlin-stdlib maven 依赖的 kotlin 数据类
- php - 试图在laravel中获取非对象的属性'expiry_date'