如何实现仅当myString第7位为4时将其复制到Excel?
修正后的VBA实现方案
原代码的问题在哪?
原代码用InStr(7, myString, "4") > 0是检查从第7位开始往后的子串里有没有"4",但你要的是第7位字符本身必须是"4",而且逻辑还完全搞反了:原代码是第7位及以后有"4"就不复制,没有才复制,和你的需求正好相反。
正确代码实现
用Mid函数精准提取第7位字符做判断,同时把逻辑调整成符合需求的版本:
Dim myString As String ' 先给myString赋值,比如 myString = "S123456789" ' 检查第7位是否为"4",是就复制到Excel表格 If Mid(myString, 7, 1) = "4" Then ' 示例:将内容写入Sheet1的A列下一个空行 Sheet1.Cells(Sheet1.Rows.Count, "A").End(xlUp).Offset(1, 0).Value = myString End If
代码说明
Mid(myString, 7, 1):从myString的第7位开始,提取1个字符,精准定位到你要检查的位置- 条件判断逻辑直接匹配需求:只有第7位是"4"时,才执行复制操作,否则不做任何处理
内容的提问来源于stack exchange,提问作者AnBa
相关产品推荐
相关产品推荐

