簡體   English   中英

Excel VBA代碼中間函數

[英]Excel VBA code mid function

我有以下字符串“ 123-456789”。 我正在嘗試做的是找到一種方法來僅捕獲第二個空格-“ 456789”之后的其余字符,而不管字符串的長度如何。

我有以下代碼集:

 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)" ,以及其他方法(通過在線搜索,但是我似乎無法正常工作。

我有兩個問題:

  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

嘗試這個:

result = Split(TextToSplit, " ", 3)(2)

Split(TextToSplit,“”,3)將在空格上分割文本,返回一個從零開始的數組。 最后一個參數3將拆分限制為3個部分:在第一個空格之前,在第一和第二個空格之間以及其他所有內容。 語句末尾的(2)返回數組的最后一個元素。

希望能有所幫助

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM