所以我正在测试一个简单的程序来找到字母e并将其从单元格中删除。除了变量A即使Cell(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
我尝试过的事情
也很抱歉没有更具体的问题。虽然我正在努力,但我不确定VBA和编码背后的术语
答案 0 :(得分:1)
Jeeped打败了我。 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
答案 1 :(得分:0)
您要将单元格(1,1).value分配给A.如果您想要单元格(1,1)的范围对象属性(例如'字符'),则需要设置a range-type var to cells(1,1)。
Sub remove()
dim A as range
set A = Cells(1, 1)
pos = InStr(A.value, "e")
A.characters(pos,1).delete'
End Sub