0
我想將每個月在文本框中更改的宏設置爲在對話框中輸入的某個月份。
這是我寫的。沒有錯誤,但它也沒有做這項工作。你能幫助找到問題嗎?謝謝。VBA:在文本框中查找字符串並將它們更改爲某個字符串
Sub ChangeMonth()
Dim xWs As Worksheet
Dim shp As Shape
Dim xFindStr As String
Dim xReplace As String
Dim z As Integer
Set xWs = Application.Sheets("Mail")
xReplace = Application.InputBox("Replace to :", "Replacement", "", Type:=2)
'On Error Resume Next
For Each shp In xWs.Shapes
xValue = shp.TextFrame.Characters.Text
For x = 1 To 12
shp.TextFrame.Characters.Text = VBA.Replace(xValue, MonthName(x), "xxxx")
Next x
shp.TextFrame.Characters.Text = VBA.Replace(xValue, "xxxx", xReplace)
Next
End Sub
我看到你的邏輯。你是對的。但是,我不得不添加應用程序。到這一行:xReplace = Application.InputBox(「替換爲:」,「SociétéGénérale」,「」,類型:= 2)否則會出錯。我跑了它。現在它用「假」取代了幾個月。你知道爲什麼嗎? – Francis
@FrancisZHENG:'假'...你打了「取消」也許吧?嘗試在InputBox部分之後添加'Msgbox xReplace'。我可能沒有把你的輸入正確。否則,它似乎是確定的。 – R3uK
我測試過了,沒有問題。我必須擊中「取消」,因爲它現在正在工作。最後一個問題,你知道如何編寫代碼:如果點擊「取消」,那麼不要做任何替換? – Francis