我是新来的,请尝试学习VBA Excel,但无法正常工作。
我希望一个带有一个参数的函数在每个单元格中插入一个增加的值。
Option Explicit
Function DefineAI(rngToSet As Range) As String
Dim intCounter As Integer
Dim cell As Range
On Error GoTo Fehler
Let intCounter = 1
For Each cell In rngToSet.Cel
'cell.Value = intCounter 'Test 1: It crashes with no error
Range(cell).Value = intCounter 'Test 2: It crashes with no error
intCounter = intCounter + 1 'intCounter++ ?? not important yet
Next
DefineAI = "test"
Exit Function
Fehler:
Debug.Print Err.Description
End Function
它在两台不同的计算机上崩溃,没有错误!实际上,它不会崩溃,而只是停止即可。
我也尝试过一个子,但结果相同。
您无法使用UDF更改另一个单元格的值,Function
也无法Sub
从UDFFunction
中调用更改另一个单元格的值的值。如果您希望运行将执行您想要的操作的宏,那么下面是一些正在运行的代码。
Sub mcr_Call_DefineAI()
Call mcr_DefineAI(Range("D2:D10"))
End Sub
Private Sub mcr_DefineAI(rngToSet As Range, Optional iSTART As Long = 1)
Dim i As Long, r As Range
On Error GoTo Fehler
i = iSTART
For Each r In rngToSet
r = i
i = i + 1
Next
Debug.Print "Test funktionierte!"
Exit Sub
Fehler:
Debug.Print Err.Description
End Sub
我提供了一个可选参数,因此您可以更改增量的起始编号。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句