VBA等效于工作的vba代码

时间:2014-06-30 12:56:14

标签: vba vbscript

我是VB脚本的新手,虽然我对VBA有点熟悉。

我写的VBA代码工作正常但是当我尝试将其转换为VBS文件时,它会在以下行中抛出运行时错误“预期结束语句 - 800A0401”

wb.Worksheets(1).Cells(1, f2) = get_split_strings(0) & "pass %"

get_split_strings(0)是一个数组,我想要做的是将字符串“pass%”附加到它。我实际上在做的是打开一个HTML文件作为excel文件进​​行处理并将其保存为HTML文件。

Set wb1 = CreateObject("Excel.Application")
Set wb = wb1.Workbooks.Open("file:///Pathname/filename.html")

If (f1 + 1) = lastrow And (f2) < lastcolumn Then
wb.Worksheets(1).Cells(f1 + 1, f2) = Round((Per_Sum / (lastrow - 2)), 0)
wb.Worksheets(1).Cells(1, f2) = get_split_strings(0) & "pass %" **Getting Error here**
f2 = f2 + 3
f1 = 1
Per_Sum = 0
End If

根据评论添加

        get_split_strings(0) = Split(wb.Worksheets(1).Cells(1, f2), "_", -1, vbBinaryCompare)

get_split_strings(0)包含标题内容。基本上是一个字符串数据。在上面的行中,f2的值递增以解析列以查找标题内容。

它适用于小型工作。修改了get_split_string(0)的用法。

wb.Worksheets(1).Cells(1,f2)= wb.Worksheets(1).Cells(1,f2) & " pass %" 

2 个答案:

答案 0 :(得分:1)

Split()生成一个数组,然后将其分配给get_split_strings(0)(数组get_split_strings的第一个元素)。你为什么这样做,BTW?数组get_split_strings的其他元素是什么?

无论如何,您无法连接数组和字符串,因此操作get_split_strings(0) & "pass %"会失败。

我不太清楚你在这里尝试做什么。是否要将数组的第一个元素连接到字符串"pass %"?在这种情况下,你应该改变

get_split_strings(0) = Split(...)

get_split_strings = Split(...)

或者您想要使用字符串"pass %"连接数组的所有元素吗?然后你应该在连接之前Join数组:

... = Join(get_split_strings(0)) & "pass %"

答案 1 :(得分:0)

“预期结束语句 - 800A0401”错误是编译错误。这很容易被messing quotes挑起。例如

wb.Worksheets(1).Cells(1, f2) = get_split_strings(0) & ""pass %"

不会编译。但是,您引用的行在语法上是正确的。

因为行计数容易出错,所以要再发布几行代码。

很抱歉,您发布的代码越长(谢谢!)在语法上仍然正确。如果可靠地识别错误行,则引号是第一个嫌疑人。根据您的编辑器,混合“正常”和花哨的引号可能无法检测到。如果您(暂时)更改

,您的脚本是否会编译
wb.Worksheets(1).Cells(1, f2) = get_split_strings(0) & "pass %"

wb.Worksheets(1).Cells(1, f2) = get_split_strings(0) '  & ""pass %" disabled!

更新评论:

由于讨厌的行'没有& "pass %"尾部'有效',请特别注意引号重新输入。