[英]How to remove the last character of a word in a text string and insert to another cell using VBA in Excel?
除了第 5 個單詞中的那個小逗號外,一切正常。 如何刪除它? 我的代碼如下。
文本如下所示: The data as of 20.12.2019, and so on.
我只想要20.12.2019
沒有那個逗號。 有什么線索嗎? 謝謝。
Public Function FindWord(Source As String, Position As Integer)
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
FindWord = ""
Else
FindWord = arr(Position - 1)
End If
End Function
子程序調用函數。
Sub InsertDate()
Sheets("Sheet1").Range("B3").Value = FindWord(Sheets("Sheet2").Range("A2"), 5)
End Sub
所以只是為了好玩,對正則表達式的簡短介紹(這絕不是我的專家):
Sub Test()
Dim str As String: str = "The data as of 20.12.2019, and so on."
Dim regex As Object: Set regex = CreateObject("VBScript.RegExp")
regex.Pattern = "\b(\d{2}.\d{2}.\d{4})"
regex.Global = True
Debug.Print regex.Execute(str)(0)
End Sub
如果您的字符串不會一直遵循相同的模式,這將是一個很好的做法。 但是,當它發生時,評論和答案中還提到了其他一些不錯的選擇。
一種選擇是Replace
:
Sub InsertDate()
With Sheets("Sheet1").Range("B3")
.Value = FindWord(Sheets("Sheet2").Range("A2"), 5)
.Value = Replace(.Value, ",", "")
End With
End Sub
這仍然是text-that-looks-like-a-date ,因此您可以調用DateValue
來轉換它。
.Value = Replace(.Value, ",", "")
.Value = DateValue(.Value) '<~ add this line
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.