我想運行某個宏,如果某個文本已被鍵入,如果F9是事後壓制,例如:觸發宏在文本+ F9
The patient has been diagnosed with DIA1
,其次是F9鍵。
單詞應對F9鍵作出反應並運行宏DIA1,該宏將從鍵入的文本中刪除單詞「DIA1」並插入特定文本。
我該怎麼做?
我想運行某個宏,如果某個文本已被鍵入,如果F9是事後壓制,例如:觸發宏在文本+ F9
The patient has been diagnosed with DIA1
,其次是F9鍵。
單詞應對F9鍵作出反應並運行宏DIA1,該宏將從鍵入的文本中刪除單詞「DIA1」並插入特定文本。
我該怎麼做?
兩件事情:
1解決方案找到了最後一行中的「DIA1」,它不檢查的最後一個字。如果你堅持的最後一個字那就是:
Sub Lastword()
Dim rng As Range, wrd As String
Set rng = ActiveDocument.Paragraphs.Last.Range
wrd = StrReverse(Trim(Left(StrReverse(rng), InStr(1, StrReverse(rng), " ", vbTextCompare))))
MsgBox wrd
End Sub
2- F9-F12是保留讓你最接近的選項是F8。或者,您可以按照@Ibo建議的these steps將宏指定給F9。
解決方案:
1-F8綁定到您的宏
Sub Bind()
Application.CustomizationContext = ThisDocument.AttachedTemplate
KeyBindings.Add KeyCode:=BuildKeyCode(wdKeyF8), KeyCategory:=wdKeyCategoryMacro, Command:="Runme"
End Sub
2 - 「查找和替換」 的宏:
Sub Runme()
Dim rng As Range
Set rng = ActiveDocument.Paragraphs.Last.Range
rng.Find.Execute FindText:="DIA1", ReplaceWith:="hello", Replace:=wdReplaceAll
End Sub
3,如果您需要解除綁定F8 :
Sub Unbind()
CustomizationContext = NormalTemplate
FindKey(BuildKeyCode(wdKeyF8)).Clear
End Sub
您將需要定義將在F9上觸發的宏,然後將F9分配給它。 Learn How
假設這個宏的名字是ttt。我假設當你按下F9鍵時,你只需鍵入要運行的函數名稱。比方說DIA1。這是你應該遵循的結構。你需要添加你需要的線來替換字符串DIA1等,但這是有效的。我測試了自己
Sub DIA1()
MsgBox "hello"
End Sub
Sub ttt()
Selection.EndKey Unit:=wdLine
Selection.MoveLeft Unit:=wdWord, Count:=1, Extend:=wdExtend
Selection.Copy
Application.Run CStr(Selection)
End Sub
你的意思是當F9被按下時,它應該查找鍵入的最後一個單詞? – Ibo