使用文本框时对象需要错误

时间:2017-06-05 05:27:31

标签: vba powerpoint-vba

 public function contactus()
 {
        $pages ='';
        if ($this->request->is('post')) 
        {
            $pages =   $this->request->data('Contact');
        }
        $this->set(compact('pages'));
        $this->set('_serialize', ['pages']);
    }

每次我运行演示文稿时,我都会在第2行得到一个对象必需的错误。我对VBA很新,所以不知道如何处理它

2 个答案:

答案 0 :(得分:0)

也许,编码就像这样 瓦尔(Slide2.TextBox1.Value)* 0.1

答案 1 :(得分:0)

您的代码存在任何问题。正如Tim所要求的那样,假设在幻灯片2上有一个名为TextBox1的形状:

Private Sub TextBox1_Change()

With ActivePresentation.Slides(2).Shapes("TextBox1")
    .OLEFormat.Object.Text = CStr(CDbl(.OLEFormat.Object.Text) * 0.0225)
End With

End Sub

一点解释:

<强> ActivePresentation.Slides(2).Shapes(&#34; TextBox1的&#34)

可能会打开多个演示文稿,因此您必须告诉VBA要查看哪个演示文稿,在本例中为活动演示文稿,即您现在正在查看的演示文稿。

<强> .Slides(2)

这是引用演示文稿中第二张幻灯片的正确语法,从那里您需要指定要使用的幻灯片上的哪个形状,所以

<强> .Shapes(&#34; TextBox1的&#34)

由于它是ActiveX形状而不是普通的PPT形状,因此您必须以相当奇怪的方式访问其属性:

<强> .OLEFormat.Object.PropertyName

在这种情况下,有问题的属性名称是Text ...文本框中的文本。

然后我们在对它进行算术运算之前将文本框中的文本转换为数字(使用CDbl),然后将结果转换回字符串以填充到文本框中。

VBA会尝试自动为这些字符串编号,编号到字符串转换,但通常更好的做法是明确你想要什么,而不是选择你想要的VBA ASS-U-ME