【发布时间】:2018-08-19 04:10:11
【问题描述】:
我想在第一张幻灯片上选择演示文稿的“类型”,例如 ActiveX 组合框中的“私人”、“公共”、“机密”等,并将所选值显示在未来幻灯片的底部ActiveX 文本框。
我的幻灯片 1 组合框工作正常。我运行演示文稿,获得焦点,下拉并选择我的值。它是 ComboBox1。
我似乎找不到在以后的幻灯片中引用该值的技巧。 vb 的新手。不确定我是否正确使用了 PowerPoint vb 编辑器。似乎我的代码/值仅限于当前幻灯片,而不是未来的幻灯片。
在幻灯片 2 上,我定义了 TextBox1。我可以通过 TextBox1.Value = "This is a " & ComboBox1 & " 幻灯片来获取它的值。但显示的只是“这是一张幻灯片”。我已经尝试了所有方法,但找不到引用第一张幻灯片 ComboBox1 值的方法,但我做不到。
有可能吗?
谢谢!
正在插入源代码。
这是在幻灯片 1 上工作。
Option Explicit
Private Sub ComboBox1_GotFocus()
If ComboBox1.ListCount = 0 Then AddDropDownItems
MsgBox "Currently:" & ComboBox1.Value
End Sub
Sub AddDropDownItems()
ComboBox1.AddItem "Private"
ComboBox1.AddItem "Confidential"
ComboBox1.AddItem "Secret"
ComboBox1.AddItem "Public"
ComboBox1.AddItem "Test"
ComboBox1.ListRows = 5
End Sub
Private Sub ComboBox1_LostFocus()
MsgBox "Changed to:" & ComboBox1.Value
End Sub
这不适用于幻灯片 2:
Private Sub TextBox1_Change()
TextBox1.Value = "Change: " &
ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Value &
"is the Type"
End Sub
【问题讨论】:
-
如果您在代码模块中使用
Option Explicit?如果没有,您是否会因为ComboBox1可能超出范围而收到错误消息? -
我没有使用 Option Explicit。似乎是这样。我会试试的。
-
试过了。使用 ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Value 作为字段得到“在 Shapes 集合中找不到项目 ComboBox1”。我应该在离开 Slide1 之前创建一个与该字段相同的新字段吗?
-
修改您的问题以包含您尝试使用的代码 :) 更容易提供帮助
-
已修订。谢谢!
标签: vba powerpoint