【问题标题】:VBScript Expected end of statement when declaring an integer声明整数时,VBScript 预期语句结束
【发布时间】:2017-05-24 21:17:10
【问题描述】:

我在第 2 行 char 9 上不断收到错误提示

预计语句结束。

我是使用 VBScript 的新手,但我查看了几个示例,但找不到该行的错误所在。你们能帮忙吗?

编辑了解更多信息: 如果我删除运行脚本的 Dim row As Integer 行,则会出现类型不匹配错误。 如果我删除 row = 150 并将 row 替换为 150,则脚本会按预期更新 excel 表。

Dim args, objExcel
Dim row As Integer 'I am having the error here. Note this comment is not normally here.

row = 150
Set objExcel = CreateObject("Excel.Application")

objExcel.Workbooks.Open "C:\Users\gria\Desktop\Test\GrossRevenueCopy.xlsm"
objExcel.Visible = False

objExcel.Run "InsertRow", row

objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.close(0)
objExcel.Quit

【问题讨论】:

  • 这段代码是用什么应用程序/编程语言编写的?
  • 我首先是在 Notepad++ 中完成的,然后认为这可能是问题所在,所以我也在 Windows 记事本中尝试了它,但同样的错误没有改变。
  • 好的,所以您正在尝试将它作为 VBScript 运行。然后摆脱As Integer。
  • @Mat'sMug 当我看到Set objExcel = CreateObject("Excel.Application") 之类的东西时,我首先想到的是“这不是 Excel VBA(即使它使用的是 Excel 对象模型)”。通常它最终会成为 Word VBA 或 MSAccess VBA,但对 As 这个词的投诉会引发危险信号。
  • @YowE3K 同意。我不得不添加我的一粒盐here。

标签: excel vbscript integer


【解决方案1】:

VBScript 没有变量“类型”的概念,因此如果您尝试定义 As Integer,它会报错。

所以简单的解决办法就是替换

Dim row As Integer

与

Dim row

【讨论】:

  • 当我编辑代码以匹配时,我在第 10 行收到错误类型不匹配,代码:800A000D
  • @Ardel 尝试使用CInt(row) 将参数转换为整数。注意:我不使用VBScript,所以我猜测它是否包含CInt 函数。或者更改您的 InsertRow 函数以接受 Variant 或 Object(取决于 VBScript 实际用于其变量的类型)。
  • 应该是Variant,因为row 绝对不是Object 参考。
  • @YowE3K chaing = row to = CInt(row) 解决了所有问题并完全满足我的需要。感谢您的所有帮助和耐心
  • @Mat'sMug 我不确定 VBScript 是否会像 VB.Net 那样一切都是对象,甚至是基本数据类型。 (所以在 VB.Net 中Dim x As Integer = 5: MsgBox x.ToString 是有效的,因为x 是一个具有ToString 方法的对象。)
猜你喜欢
  • 2020-08-20
  • 1970-01-01
  • 1970-01-01
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 2020-02-14
  • 1970-01-01
  • 2017-12-08
相关资源
最近更新 更多