我在Powerpoint 2010中有以下VBA代码,可以随机从列表中选择一个名称:
Dim hat As New Collection
Sub fill_the_hat()
Dim items() As String
Dim x As Long
items = Split("Test\Names\John\Bob\Chris\Mike\Robert\Adam", "\")
For x = 0 To UBound(items)
hat.Add(items(x))
Next x
End Sub
Sub pick_one()
Dim x As Long
Randomize
x = Int(Rnd * hat.Count) + 1
MsgBox hat(x)
hat.Remove (x)
End Sub
我需要将其调整为输出到文本框而不是MsgBox,但这看起来并不像我想象的那么明显吗?
非常感谢任何帮助,
非常感谢, 约什
答案 0 :(得分:0)
您必须直接使用UserForm和TextBox来更改内容。一个例子是:
UserForm1.TextBox1.Text = x
这必须在UserForm1.Show调用之前发生,或者您必须通过UserForm1.Repaint刷新表单
答案 1 :(得分:0)
如果您只是显示名称,则根本不需要使用ActivX文本框。只需使用普通形状或文本框
ActivePresenation.Slides(1).Shapes(" nameofshape")。Textframe.TextRange = hat(x)
当你使用网上的代码时,更常见的是说"我从John Wilson的文章中得到了这个代码"而是#34;我有这个代码"