运行时错误9,超出范围,错误438,错误1009

0 excel vba excel-vba

我的excel VBA代码一直给我错误.几天前我运行了很多代码.现在我正在研究新代码,它无法正常工作!

它给我的一些错误包括

Run time error 9, out of range
error 438
error 1009
Run Code Online (Sandbox Code Playgroud)

我觉得有些不对劲,这与代码不一定有关

Sub GetTickers1()

    WS = Workbooks("Ticker Symbols for Rodman and Renshaw Conference 2015").Worksheets("Sheet1")

    Dim i As Integer

    For i = 2 To i = 254 Step 1



    WS.Cells(i, 2) = Left(Right("" + WS.Cells(i, 1), 5), 4)

    Next i

End Sub
Run Code Online (Sandbox Code Playgroud)

Dav*_*ens 7

这段代码从未起作用(至少不像目前编写的那样).

如果没有Set关键字,第一行就无法执行,并且会引发438错误.

如果你纠正了这个错误,那么你可能会遇到1009错误:

  • 在该语句右侧指定的工作簿未在当前活动的Excel应用程序实例中打开
  • 在该语句右侧指定的工作表在指定的工作簿中不存在.

对于你的424错误,虽然你有时可以依赖对象的默认属性(例如,Debug.Print Range("A1")将打印.Value),但赋值语句不会自动分配给默认属性,所以你必须指定:WS.Cells(i, 2).Value = ...另外,我是不知道你试图做什么,"" +但可能导致类型不匹配 - 阅读是否最好使用+&运算符连接字符串 - 两者都是允许的,但+有时可能会让你陷入困境,所以修改如:

WS.Cells(i, 2).Value = Left(Right(WS.Cells(i, 1), 5), 4)
Run Code Online (Sandbox Code Playgroud)

请注意,您For i = 2 To i = 254 Step 1不会做任何事情.试试吧For i = 2 to 254.除非另有说明,否则始终隐含1步,因此您无需明确执行Step 1.