回 帖 发 新 帖 刷新版面

主题:OLE自动化问题

本人正在学习VB6中OLE自动化的内容,按照教科书的步骤进行上机练习,出现“实时错误‘438’:对象不支持该属性或方法” 的错误提示。具体步骤如下:

在窗体中建三个标签,Caption属性分别为“单价”、“数量”、“合计”,建三个文本框分别存放单价、数量、合计,建两个命令按钮,Caption属性分别为“计算”、“退出”。代码如下:

Private Sub Command1_Click()
      Dim xlApp As Object                                                '声明对象变量
      Set xlApp = CreateObject("G:\ygz\VB6\example\Calculation.xls")    '装入Excel工作表(建立对象为Excel.Sheet)
      xlApp.Application.Visible = True                                   '设置属性为真
      xlApp.cells(2, 1).Value = Text1.Text                              '将Text1的值存入单元格r2c1
      xlApp.cells(3, 1).Value = Text2.Text
      xlApp.cells(4, 1).formula = "=r2c1*r3c1"                            '单元格r4c1使用公式
      Text3.Text = xlApp.cells(4, 1)                                     '将单元格r4c1的值存入Text3
      xlApp.saves "G:\ygz\VB6\example\Calculation.xls"                   '保存工作表
      xlApp.Application.quit                                             '关闭对象
      Set xlApp = Nothing                                                '清除对象,释放内存
End Sub

Private Sub Command2_Click()
        End
End Sub

进行调试后,错误提示出现在第五行代码。

请高手指点一下,不胜感谢。

 

回复列表 (共10个回复)

沙发

高手都休息了?没人能解答吗?

板凳

formula
这个词是错的。

3 楼

正确的写法应该是
FormulaR1C1

4 楼

你要注意,单词的首字母是否自动变成大写。
如自动改变,就是正确的,否则就是错误的。

5 楼

我把formula改为FormulaR1C1运行后,还是出现同样的错误提示?进行调试时,光标指向第五行代码:xlApp.cells(2, 1).Value = Text1.Text
    但是还要感谢“老大徒伤悲”的回复,谢谢。恳请专家再帮忙指出问题所在,再次表示感谢。

6 楼

哦,我记得那天试验过了的吖

7 楼

请专家“老大徒伤悲” 再帮忙看看问题出在哪里?
运行后出现“实时错误‘438’:对象不支持该属性或方法” 的错误提示。为什么调试时光标指向第五行代码: xlApp.cells(2, 1).Value = Text1.Text,其中cells的第一字母无论是大写,还是小写都一样,仍旧出错?

另外,不管用formula属性还是改为formulaR1C1属性,第一个字母都没有自动变成大写,不知道是什么原因?还有一个情况,运行后,excel启动,但工作薄没有打开?

8 楼

有没有高手指出哪里出错了?再此先谢谢啦!
为何
xlApp.Cells(2, 1).Value = Text1.Text中的value能自动把第一个字母变为大写,

xlApp.Cells(4, 1).formulaR1C1 = "=r2c1*r3c1" 中的formulaR1C1(或formula)不能把第一个字母变为大写?

9 楼

看帖是学习,回帖更是礼貌!!!

10 楼

看帖是学习,回帖更是礼貌!!!

我来回复

您尚未登录,请登录后再回复。点此登录或注册