繁体   English   中英

将用户输入文本框中的文本放入不同幻灯片上的文本框中

[英]Place text from user input textbox into textbox on a different slide

如何从用户表单中的用户输入中获取文本以填充另一张幻灯片上的文本框?

我的 UserForm1 提交按钮代码:

Private Sub CommandButton1_Click()
    UserName$ = TextBox1.Value
    Unload UserForm1
    ActivePresentation.SlideShowWindow.View.Next
End Sub

我相信用户在 GUI 中键入的值存储在变量UserName$

我尝试使用标签框和文本框。

你的问题有很多东西要解开。 Microsoft 在通过 VBA 公开 PowerPoints 对象模型方面花费了最少的精力。 在 Access、Excel、Outlook 和 Word 中使用 VBA 时,您可以创建一些惊人的解决方案; PowerPoint,没有那么多。

首先,正如 ashleedawg 所建议的,您应该将 Option Explicit 添加到每个模块、类和表单代码中。 您可以通过单击工具(在菜单上),选择选项,然后选中需要变量声明来将其设置为默认值。

现在创建一个模块,通过从菜单中单击插入,然后选择模块。 这将创建一个新模块。 在模块中,输入Public UserName As String 现在,这将使变量 UserName 可以在整个解决方案中的任何地方访问。 如果你愿意,它是一个全局变量。 我通常调用一个包含我的 gobals 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 的文本框中。

祝你好运,快乐编码

据我了解,您只想修改以前的代码。 为此,在$username = textBox1.value下面写下:

yourtextBoxname.text = textBox1.text

PowerPoint VBA

我有一个类似的问题,非常感谢您的帮助。

我正在尝试获取用户将输入的文本框(Textbox1 Slide 4)中的值并将其输出到一个方程中,并将其显示在另一张幻灯片(Textbox1 Slide5)上的文本框中。

所以用户输入的范围可以从 1 到 100。我需要将其转换为十进制并转换为以下等式:

(用户输入 - 1)^2

如果用户在 Textbox1 Slide4 中键入 40,我希望幻灯片 5 上的文本框显示 0.36

(0.40 - 1)^2 = 0.36

任何帮助将不胜感激。 谢谢!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM