谁能告诉我如何从用户表单中的用户输入中获取文本,以填充到另一张幻灯片的文本框中?
目前,我对UserForm1提交按钮的代码如下:
sigmoid
我相信用户在GUI中键入的值存储在变量df.plot()
中,但是无论如何尝试,都无法使文本显示在另一张幻灯片的文本框中。我尝试使用标签框和文本框,但是不知道正确的代码。
答案 0 :(得分:0)
您的问题有很多东西需要解开。 Microsoft通过VBA花费最少的精力来公开PowerPoint对象模型。在Access,Excel,Outlook和Word中使用VBA时,您可以创建一些出色的解决方案。 PowerPoint,不是很多。
首先,按照ashleedawg的建议,应将Option Explicit添加到每个模块,类和表单代码。您可以通过以下方式将其设置为默认值:单击“工具”(在菜单上),选择“选项”,然后选中“需要变量声明”。
现在,通过从菜单中单击“插入”来创建一个模块,然后选择“模块”。这将创建一个新模块。在模块中,输入Public UserName As String
。现在,这将使变量UserName可以在整个解决方案的任何位置访问。如果愿意的话,这是一个全局变量。我通常会调用一个包含我的modGobals
的模块。
Option Explicit
Public UserName As String
现在输入表单代码。在幻灯片上创建文本框时,默认名称以TextBox开头,后跟空格和数字。您将要重命名文本框。为此,请转到幻灯片视图。在功能区上,确保显示“文件”部分。在最右边,您将看到一个名为“使用查找,替换,选择进行编辑”的区域。单击选择。从出现的下拉菜单中,单击“选择窗格...”。将出现选择窗格,您将在幻灯片上看到所有对象。当您单击不同的幻灯片对象时,它们将在选择窗格中突出显示。
现在,您已将文本框重命名为tbUserName之类的名称,则可以如下所示更新代码。
Option Explicit
Private pvSlide As Slide
Private pvShp As Shape
Private Sub CommandButton1_Click()
UserName = TextBox1.Value
'Assume that slide index 2 contains the text box you want to update
Set pvSlide = ActivePresentation.Slides(2)
'set the shape you're going to update
Set pvShp = pvSlide.Shapes("tbUserName")
'This is the fun part -- traversing the object tree to get to the
'right property that so we can update the text box's value
pvShp.TextFrame2.TextRange.Text = UserName
Unload UserForm1
'I'm not sure why you're executing this method. So I commented it out
'ActivePresentation.SlideShowWindow.View.Next
End Sub
运行用户窗体时,在文本框中输入文本,然后按命令按钮,您输入的文本将显示在幻灯片2的文本框中。
祝你好运,编码愉快
答案 1 :(得分:0)
据我了解,您只想修改以前的代码。
为此,只需写下$username = textBox1.value
下面的内容:
yourtextBoxname.text = textBox1.text