Vba 在MS Word-Visual Basic中多次单击按钮

Vba 在MS Word-Visual Basic中多次单击按钮,vba,Vba,我正在用word创建一个文档,其中包含用户单击以将文本添加到文本框中的按钮 例如,单击按钮1将在文本框1中添加“您已单击按钮1”。 单击按钮2将在同一框中添加“您已单击按钮2”。(我知道一些令人兴奋的事情) 我正在Visual Basic中的单击事件中使用TextBox1.Text=TextBox1.Text+“您已单击按钮1” 我希望用户能够再次单击按钮以删除(或撤消?)文本。或者,确实,第三次单击以再次添加文本 我想我希望用户能够切换框中的文本或不切换。甚至可以根据文本是打开/关闭还是在文本

我正在用word创建一个文档,其中包含用户单击以将文本添加到文本框中的按钮

例如,单击按钮1将在文本框1中添加“您已单击按钮1”。 单击按钮2将在同一框中添加“您已单击按钮2”。(我知道一些令人兴奋的事情)

我正在Visual Basic中的单击事件中使用TextBox1.Text=TextBox1.Text+“您已单击按钮1”

我希望用户能够再次单击按钮以删除(或撤消?)文本。或者,确实,第三次单击以再次添加文本

我想我希望用户能够切换框中的文本或不切换。甚至可以根据文本是打开/关闭还是在文本框内/外更改按钮颜色


有什么建议吗?

我可能这样做的方式是使用一个简单的IF语句,首先确定文本的状态。如果为空,则填充它。如果它不是空的,则将该值设为等于“”

代码看起来像这样(但不完全是这样——这只是理论上的)


如果我没有正确理解该要求,我深表歉意。

我可能会这样做的方式是使用一个简单的if语句,首先确定文本的状态。如果为空,则填充它。如果它不是空的,则将该值设为等于“”

代码看起来像这样(但不完全是这样——这只是理论上的)



如果我没有正确理解要求,请道歉。

TextBox1.Text=TextBox1.Text+“您已经单击了按钮1”
这样的撤销文本更改有点混乱。据我所知,您希望用户单击按钮以基于某些选项创建文本。我建议您使用复选框而不是按钮,因为在VBA中使用
&
而不是
+
连接文本要容易得多。谢谢您的帮助-但是-我有几个按钮。每个按钮都附有一条语句,可以输入到一个整体文本框中。本质上-语句是开还是关。用户正在编写一份由附在按钮上的语句组成的报告。这取决于他们的句子顺序。我不想清空整个文本框,只想清空与按钮相关联的短语。
TextBox1.text=TextBox1.text+“您单击了按钮1”
这样的撤销文本更改有点混乱。据我所知,您希望用户单击按钮以基于某些选项创建文本。我建议您使用复选框而不是按钮,因为在VBA中使用
&
而不是
+
连接文本要容易得多。谢谢您的帮助-但是-我有几个按钮。每个按钮都附有一条语句,可以输入到一个整体文本框中。本质上-语句是开还是关。用户正在编写一份由附在按钮上的语句组成的报告。这取决于他们的句子顺序。我不想清空整个文本框,只想清空与按钮相关联的短语。如果有两个单击文本,可能是like和replace。谢谢你,但是我有几个按钮。每个按钮都附有一条语句,可以输入到一个整体文本框中。本质上-语句是开还是关。用户正在编写一份由附在按钮上的语句组成的报告。这取决于他们的句子顺序。我不想清空整个文本框-只清空与按钮关联的短语。也许我可以使用双击操作,首先搜索文本框中所附短语的确切字符串,并将其替换为“”(如果有)?我该怎么做呢?如果你用各种不同的字符串填充这个盒子,然后把它的内容变成一个大字符串,你想看看使用InStr方法。您基本上可以使用InStr在其他字符串中定位字符串。是的,你可以有一个函数,从你按下的任何按钮中获取一个参数(字符串),在框中搜索该字符串。如果找到,则删除它;如果未找到,则添加它。我想我明白你想做什么,但我自己并没有真正尝试过类似的事情。好的-我已经创建了这个…'Private Sub CommandButton1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)TextBox1=带选择的选择。Find.Text=“您好,VBA master!”。Replacement.Text=“”.Forward=True.Wrap=wdFindContinue.Format=False.MatchCase=False.MatchWholeWord=False.MatchSoundsLike=False.MatchAllWordForms=False以Selection.Find.Execute Replace:=wdReplaceAll'
结束,但它会擦除盒子(如果有两个单击文本,可能是like和replace,则不是字符串结尾子项。谢谢-但是-我有几个按钮。每个按钮都有一个附加的语句,可以输入到一个整体文本框中。本质上-该语句是打开或关闭的。用户正在编译一个由附加到按钮的语句组成的报告。这取决于他们的句子顺序。我不想清空整个文本框,只清空与按钮关联的短语。也许我可以双击操作,首先在文本框中搜索所附短语的确切字符串,并将其替换为“”“”如果它在那里?我该怎么做?如果你用各种不同的字符串填充这个框,然后把它的内容变成一个大字符串,你想看看如何使用InStr方法。你基本上可以使用InStr在其他字符串中定位字符串。因此,是的,你可以有一个带参数的函数(字符串)从您按下的任何按钮,在框中搜索该字符串。如果找到,则删除该字符串,如果未找到,则添加该字符串。
If textbox1.text = "" Then

textbox1.text = "You've clicked button 1"

Else 

textbox1.text = ""

End If