(Excel VBA)变量不起作用并显示"需要对象错误"



所以我正在测试一个简单的程序来找到字母e并将其从单元格中删除。除了变量 A 不起作用,即使 Cells(1,1( 起作用。

Sub remove()
A = Cells(1, 1)
pos = InStr(A, "e")
'A works for pos though I don't know why
'A.characters(pos,1).delete'
'The above doesn't work for some reason'   
Cells(1, 1).Characters(pos, 1).delete    
End Sub

我尝试过的事情

  • 将 A 调暗为范围
  • 使用范围

也很抱歉没有更具体地说明我的问题。我不确定 VBA 和编码背后的术语,尽管我正在努力

吉普车打败了我。VBA 不是强类型,因此除非您使用"Set"显式告诉它要分配的变量是对象类型,否则在这种情况下,A 采用的值是单元格的内容,而不是单元格本身。

您甚至不需要调暗它,尽管这是很好的做法。

Sub remove()
Set A = Cells(1, 1) 'Need to use Set
pos = InStr(A, "e")
'This works just fine now
A.characters(pos,1).delete'
End Sub

你正在将 cells(1, 1(.value 分配给 A。如果你想要单元格(1,1(的范围对象属性(如"字符"(,你需要为单元格(1,1(设置范围类型var。

Sub remove()
dim A as range
set A = Cells(1, 1)
pos = InStr(A.value, "e")
A.characters(pos,1).delete'   
End Sub

最新更新