我有一个宏用于将文本过去写成我写的字母,如下所示:
Sub CT1()
Dim myText As String
'Insert text with custom font
myText = "Revisions are necessary"
Selection.Font.Name = "Times New Roman"
Selection.Font.Size = 12
Selection.Font.Bold = False
Selection.TypeText (myText)
我遇到的问题是,当我有一个很长的文本字符串时,这个方法变得很丑,因为我有一个很长的字符串,很难在VBA中读取。
我想要做的是创建一个带有文本框的表单来保存我的文本,我希望宏从文本框中获取文本并以与使用上述宏相同的方式过去。这将使我更容易编辑文本,但我不知道如何执行我的愿景。
请帮我写这个宏。
答案 0 :(得分:0)
您需要使用Userform
。
您需要在项目中插入UserForm
,然后添加两个CommandButtons
和一个TextBox
。见下文;
然后你可以按“F7”来获取代码并将其放在那里:
Private Sub CommandButton1_Click()
'This is the Insert Button
Dim myText As String
'Assigning the Text in the Text box
myText = UserForm1.TextBox1.Text
'Use a With Statement to reduce repetitive typing
With Selection
.Font.Name = "Times New Roman"
.Font.Size = 12
.Font.Bold = False
.TypeText (myText)
End With
End Sub
Private Sub CommandButton2_Click()
'This is the Exit Button
'Ends the Process
End
End Sub
文本将插入当前光标位置。
您接下来要做的就是从您的CT1 Sub:
致电UserForm1
Sub CT1()
UserForm1.Show