excel - 如何搜索子字符串,并返回其右侧 10 个字符的所有值

标签 excel vba

我想将变量“asin”设置为单元格内容中的 10 个字母数字字符串。
被搜索的子字符串总是以 B0 或 b0 开头。我试图研究一种方法来让一个语句查找任一值,但无法找到它。如果有人可以分享这个,将不胜感激。
正在分析的单元格内的字符串是:sp - dfns - 短语 - B07QMXFJHS - scissors
我认为问题出在 Mid 语句中的 instr 函数上。

Sub test()
 
Dim asin As String
Dim ws As Worksheet

Set ws = Worksheets("sp bulkexport")


If InStr(ws.range("d2").Value, "b0") > 0 Then
    asin = Mid(ws.range("d2").Value, InStr(1, ws.range("d2").Value, "b0", 0), 10)
ElseIf InStr(ws.range("d2").Value, "B0") > 0 Then
    asin = Mid(ws.range("d2").Value, InStr(1, ws.range("d2").Value, "B0", 0), 10)
End If


'this is to check the result
ws.range("e3").Value = asin


End Sub

最佳答案

您可以对您的想法进行编码,如下所示。

Dim Ws      As Worksheet
Dim Asin    As String
Dim n       As Long                 ' used by Instr()

Set Ws = Worksheets("sp bulkexport")
With Ws.Cells(2, "D")
    n = InStr(1, .Value, "b0", vbTextCompare)
    If n Then Asin = Mid(.Value, n, 10)
    
    'this is to check the result
    Offset(1, 1).Value = UCase(Asin)
End With

关于excel - 如何搜索子字符串,并返回其右侧 10 个字符的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68506012/

相关文章:

excel - 在 CRM Online 环境之间移动 "Dynamic Worksheets"

sql - 将 sql 整数舍入到最接近的小时

excel - 检查 Excel 中是否存在损坏的超链接

excel - 使用复选框通过 Onaction 传递参数

excel - 获取给定行号和列号的单元格内容

excel - 带有边框的运行时错误 '438'

excel - VBA Excel 类模块成员未填充字符串

vba - 保存 Excel 文件时出现运行时错误 1004(需要 VBA)

performance - 从工作表中删除命令按钮和行非常慢

vba - 如何在剪贴板中放置文本,以便将其作为表格粘贴到 Word 中?