Excel VBA-编译错误-参数数目错误或属性分配无效

Excel VBA-编译错误-参数数目错误或属性分配无效,excel,vba,Excel,Vba,我试图编写一个excel按钮来引用列AX第2行中的一个值,将该引用输入到我们的业务系统(IBM)中的一个字段中,如果它在坐标处发现与列AX第2行中的修剪匹配的修剪,则将该值输入到列F第2行中的同一个表中,然后移动到下一行并重复,直到该行为空 我已经试着换到For Next并调整代码,但不知道我在哪里卡住了 Dim HE As Object Set HE = CreateObject("BZWhll.WhllObj") 'BlueZone Dim ExcelTaxID As String Dim

我试图编写一个excel按钮来引用列AX第2行中的一个值,将该引用输入到我们的业务系统(IBM)中的一个字段中,如果它在坐标处发现与列AX第2行中的修剪匹配的修剪,则将该值输入到列F第2行中的同一个表中,然后移动到下一行并重复,直到该行为空

我已经试着换到For Next并调整代码,但不知道我在哪里卡住了

Dim HE As Object
Set HE = CreateObject("BZWhll.WhllObj") 'BlueZone

Dim ExcelTaxID As String
Dim IBMTaxID As String
Dim IBMPvd As String
Dim EachRow As Integer

    AppActivate UseIBM1
    EachRow = 2
    Do While EachRow <> ""

        ExcelTaxID = Trim(ActiveWorkbook.Worksheet("ShrPntTransfer").Column("AX").row("EachRow").Value)

        HE.CurrentHost.PutText "BPIQ", 1, 1
        Utilities.PressKey "ENTER", False, UseIBM1, "01", , "YES", "BUTTONS"
        HE.CurrentHost.PutText "5", 22, 12
        Utilities.PressKey "ENTER", False, UseIBM1, "02", , "YES", "BUTTONS"
        HE.CurrentHost.PutText ExcelTaxID, 9, 2
        Utilities.PressKey "ENTER", False, UseIBM1, "03", , "YES", "BUTTONS"

        IBMTaxID = Trim(UseIBM1, 7, 8, 9)

            If ExcelTaxID = IBMTaxID Then
                IBMPvd = Trim(UseIBM1, 7, 35, 6)
                Sheets("ShrPntTransfer").Column("F").row("EachRow").cell.Value = IBMPvd
                ActionEntry = ActionEntry & "Provider Number Recorded"
            Else
                Sheets("ShrPntTransfer").Column("F").row("EachRow").cell.Value = "Provider Not Found"
            End If

            Utilities.PressTwoKeys "SHIFT", "F12", True, UseIBM2, "03", , "YES", "BUTTONS"

        EachRow = EachRow + 1
    Loop
将HE设置为对象
将HE=CreateObject(“BZWhll.WhllObj”)设置为蓝色区域
像线一样模糊
将IBMTaxID设置为字符串
作为字符串的Dim IBMPvd
将每个箭头设置为整数
AppActivate UseM1
每小时=2
“边做边做”
ExcelTaxID=Trim(ActiveWorkbook.worket(“ShrPntTransfer”).列(“AX”).行(“EachRow”).值)
HE.CurrentHost.PutText“BPIQ”,1,1
实用程序。按键“回车”,False,UseIBM1,“01”,“是”,“按钮”
HE.CurrentHost.PutText“5”,22,12
实用程序。按键“回车”,False,UseIBM1,“02”,“是”,“按钮”
HE.CurrentHost.PutText ExcelTaxID,9,2
实用程序。按键“回车”,False,UseIBM1,“03”,“是”,“按钮”
IBMTaxID=修剪(使用ibm1、7、8、9)
如果ExcelTaxID=IBMTaxID,则
IBMPvd=微调(使用IBM1、7、35、6)
表(“ShrPntTransfer”)。列(“F”)。行(“每行”)。单元格。值=IBMPvd
ActionEntry=ActionEntry&“记录的提供商编号”
其他的
表格(“ShrPntTransfer”)。列(“F”)。行(“EachRow”)。cell.Value=“未找到提供程序”
如果结束
实用程序。按两个键“SHIFT”、“F12”、True、UseIBM2、“03”、“YES”、“BUTTONS”
每小时=每小时+1
环

编译错误:错误的参数数或无效的属性分配可以简化
列(x)中的引用。行(y)
与Range()或Cells()一起使用,并且
每一行都是一个变量,应该不加引号:

因此:

变成

Trim(ActiveWorkbook.Worksheets("ShrPntTransfer").Cells(EachRow,"AX").Value)
Worksheets("ShrPntTransfer").Cells(EachRow,"F").Value = IBMPvd

变成

Trim(ActiveWorkbook.Worksheets("ShrPntTransfer").Cells(EachRow,"AX").Value)
Worksheets("ShrPntTransfer").Cells(EachRow,"F").Value = IBMPvd

可以简化从
列(x)的引用。行(y)
与Range()或Cells()一起使用,
EachRow
是一个变量,应该不加引号:

因此:

变成

Trim(ActiveWorkbook.Worksheets("ShrPntTransfer").Cells(EachRow,"AX").Value)
Worksheets("ShrPntTransfer").Cells(EachRow,"F").Value = IBMPvd

变成

Trim(ActiveWorkbook.Worksheets("ShrPntTransfer").Cells(EachRow,"AX").Value)
Worksheets("ShrPntTransfer").Cells(EachRow,"F").Value = IBMPvd

.Column(“F”).row(“EachRow”)
.Columns(“F”).Rows(EachRow)
.Column(“F”).row(“EachRow”)
.Columns(“F”).row(EachRow)如果添加
s
并取消
EachRow
,它确实有效,但肯定不是常用的方法。@TimWilliams真的吗?哇,没想到会这样。嗯,列是一个范围,范围有行,所以。。。不过我还是要检查一下。我明白了其中的逻辑,今天“学会了”我的新东西。很酷。祝贺100.000:)如果您添加
s
并取消引用
的话确实有效,但肯定不是一种常用的方法。@TimWilliams真的吗?哇,没想到会这样。嗯,列是一个范围,范围有行,所以。。。不过我还是要检查一下。我明白了其中的逻辑,今天“学会了”我的新东西。酷。祝贺你的10万:)