清除PowerPoint中的组合框

时间:2018-01-22 08:46:54

标签: vba powerpoint powerpoint-vba clear

我在启用宏的powerpoint演示文稿中有两个ComboBox。这些Combobox代表开始日期和结束日期。下面的代码清除了组合框,但是如果演示文稿打开时已经存在日期,则不会。所以,假设您打开功率点演示文稿,并且演示文稿之前的日期仍然在Combobox中,如果我尝试应用此代码......没有任何反应。但是,如果我在组合框中调整日期并再次应用代码,它就会起作用并且组合框被清除。奇怪!有什么想法吗?

Dim j As Long
Dim cb As Object

For j = 1 To 2
Set cb = Slide1.Shapes("ComboBox" & j).OLEFormat.Object
cb.Clear
Next j

'Clean up
 Set cb = Nothing

谢谢

2 个答案:

答案 0 :(得分:1)

这将清除幻灯片1上的ComboBox1的内容:

Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)
    ActivePresentation.Slides(1).Shapes("ComboBox1").OLEFormat.Object.Clear
End Sub

Wn.View.Slide.SlideIndex将为您提供当前幻灯片的索引,因此您可以将.Slides(1)替换为.Slides(Wn.View.Slide.SlideIndex)以使用您希望的任何幻灯片。

答案 1 :(得分:0)

以下内容清除组合框中的日期,无论该日期是否来自之前正在运行的演示文稿,或者当前用户是否已输入日期,现在希望清除它们。

 Dim j As Long
 Dim cb As Object

  For j = 1 To 2
  Set cb = Slide1.Shapes("ComboBox" & j).OLEFormat.Object
  cb.Value = vbNullString
  Next j

  'Clean up
   Set cb = Nothing