如何解决嵌套 InStr VBA Excel
我正在尝试循环并在很长的代码列表中找到一些组件以粘贴到不同的单元格。
现在我明白了
Sub przenoszenie()
Dim wb As Workbook
Dim komorka As Range
Dim komorka2 As Range
Set wb = ThisWorkbook
Set komorka = wb.Worksheets("Dane").Range("B2")
Set komorka2 = wb.Worksheets("Dane").Range("J2")
For i = 1 To 10000
If InStr(1,komorka.Value,"width=109") And InStr(1,"colSpan=8") Then
komorka2.Value = komorka.Value
Else
If InStr(1,"width=90") Then
komorka2.Value = komorka.Value
Else
If InStr(1,"width=374") Then
komorka2.Value = komorka.Value
End If
End If
End If
komorka = komorka.Offset(1,0)
komorka2 = komorka2.Offset(1,0)
Next i
我知道我要查找的字符串部分位于 Excel 的 B 列中。
但是我在 J 列中没有得到任何结果。我知道我在那些 If
语句中遗漏了一些东西。就是想不通;/
解决方法
可能的解决方案:
尝试将 Instr
条件更改为 Instr(...) > 0
,如下所示:
Sub przenoszenie()
Dim wb As Workbook
Dim komorka As Range
Dim komorka2 As Range
Set wb = ThisWorkbook
Set komorka = wb.Worksheets("Dane").Range("B2")
Set komorka2 = wb.Worksheets("Dane").Range("J2")
For i = 1 To 10000
If InStr(1,komorka.Value,"width=109") > 0 And InStr(1,"colSpan=8") > 0 Then
komorka2.Value = komorka.Value
Else
If InStr(1,"width=90") > 0 Then
komorka2.Value = komorka.Value
Else
If InStr(1,"width=374") > 0 Then
komorka2.Value = komorka.Value
End If
End If
End If
Set komorka = komorka.Offset(1,0)
Set komorka2 = komorka2.Offset(1,0)
Next i
如果这不能正常工作,那么另一个可能的问题是大小写匹配。要使您的搜索不区分大小写,请使用例如 Instr(1,"width=374",vbTextCompare)
编辑:刚刚阅读@JvdV 的评论(现已删除)并添加了 Set
关键字
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。