Excel VBA代码中间函数 [英] Excel VBA code mid function

查看:83
本文介绍了Excel VBA代码中间函数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下字符串"123-456789".我想做的是找到一种方法,仅捕获第二个空格后的其余字符-"456789"-不管字符串的长度如何.

I have the following string "123 - 456789". What I am trying to do is find a way to only capture the remaining characters after the second space - "456789" - regardless the length of the string.

我有以下代码集:

 For leftLoop = 2 To leftNumberOfCells
     Range("A" & iRow) = Split(Range("B" & iRow).Value, " ")                
     Range("B" & iRow) = Mid("B" & iRow, InStr("B" & iRow, " "), 100)

     iRow = iRow + 1               
 Next leftLoop

代码行"Range("B" & iRow) = Mid("B" & iRow, InStr("B" & iRow, " "), 100)"是我尝试的方法,除了其他方式(从在线搜索开始,但我似乎无法使其正常工作.

The code line "Range("B" & iRow) = Mid("B" & iRow, InStr("B" & iRow, " "), 100)" is what I tried, among other ways (from searching online, but I can't seem to get it to work.

我有两个问题:

  1. 有人知道正确的代码是什么吗?还有...
  2. 我是否可以引用字符串所在的单元格并在执行mid函数后将其替换为同一单元格,而不必将其临时放入另一个单元格中并复制并粘贴回去?例如,我的字符串"123-456789"在单元格B2中,有没有一种编码方式,因此我可以引用单元格B2,同时用"456789"替换单元格B2,而不必将其放置在另一个单元格中,然后复制并将其粘贴回B2.我希望你能明白我的要求.

感谢您的帮助!

推荐答案

这是第2部分的内容.

Sub strings()

Dim replace As String
Dim bCell As Range

For leftLoop = 2 To leftNumberOfCells

    Set bCell = Range("B" & iRow)
    replace = Mid(bCell, InStr(bCell, "-") + 2, 100)
    Range("B" & iRow) = replace

    iRow = iRow + 1

Next leftLoop

End Sub

这篇关于Excel VBA代码中间函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆