【问题标题】:VB Script Runtime Error: Object Required: 'Active Cell'VB 脚本运行时错误:需要对象:“活动单元格”
【发布时间】:2017-06-03 01:03:44
【问题描述】:

尝试运行以下 VBScript:

Set ObjExcel = createobject("Excel.Application")
Set objWb = objExcel.Workbooks.Open("C:\test.xlsx")
Set objSheet = objWb.Worksheets("Sheet1")


objSheet.Cells(1,1).Select
With ActiveCell.Font 
 .Bold = True 
 .Italic = True 
End With

抛出如下错误:

行:7 字符:1 错误:需要对象:“ActiveCell” 代码:800A01A8 来源:Microsoft VBScript 运行时错误

所以它没有链接 ActiveCell。我花了几个小时在网上搜索了很多类似的问题,但没有运气,有什么建议吗?提前致谢。

【问题讨论】:

  • 错误信息很明确:ActiveCell 将在您的脚本中被解释为一个对象,无需任何声明。
  • 好的,我曾认为 ActiveCell 是 VB 脚本中的一个预定义函数(如果这是正确的术语),它操纵到当前选定的单元格?如果我必须声明它,那是否意味着它是一个变量名?谢谢

标签: excel vbscript


【解决方案1】:

“.ActiveCell”(以及所有其他 Active*s)是 Excel 交互式使用的概念。这意味着用户刚刚单击的单元格 - 可能是错误的,请稍等,直到他点击他想要的那个。 如果您自动化 Excel,您将摆脱用户,因此需要跟踪他的疯狂点击。现在一个程序要求另一个程序直接执行必要的任务。无需模拟用户的点击 (.Select) 并在所有地方搜索激活的 Cell。 程序只是说:“请-

With objSheet.Cells(1,1).Font 
 .Bold = True 
 .Italic = True 
End With

非常感谢。

【讨论】:

  • +1。同意。但是 OP 更多地强调了他遇到的错误。因此,该解决方案。毫无疑问,这个更好。
【解决方案2】:

试试这个:

Set ObjExcel = createobject("Excel.Application")
ObjExcel.Visible=true                     'you can remove this line as per your requirement
Set objWb = objExcel.Workbooks.Open("C:\test.xlsx")
Set objSheet = objWb.Worksheets("Sheet1")
objSheet.Cells(1,1).Select
Set reqCell = ObjExcel.ActiveCell         'Setting reference to the active cell
With reqCell.Font 
 .Bold = True 
 .Italic = True 
End With

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多