Function ChangeColVal(ByVal Rng As Range, ByVal ValueToChange As Integer)
Dim Cell1, Cell2 As String
Dim PosOfColon, TotalCell, Sum As Integer
PosOfColon = InStr(1, Rng.Address, ":")
Cell1 = Left(Rng.Address, PosOfColon - 1)
Cell2 = Right(Rng.Address, Len(Rng.Address) - PosOfColon)
If Left(Cell1, 2) = Left(Cell2, 2) Then
TotalCell = Rng.Count
For i = 0 To TotalCell
If IsNumeric(Range(Cell1).Offset(i, 0).Value) = False Then
GoTo 112:
End If
Cell2 = Range(Cell1).Offset(i, 0).Address
Sum = Range(Cell2).Cells.Value + ValueToChange
On Error GoTo 111
'Here getting error...
Range(Cell2).Value = Sum
GoTo 112
111:
MsgBox (Err.Number & ":" & Err.Description)
112:
Next i
Else
MsgBox ("Select Column only...")
End If
End Function
我想增加或減少所選範圍的單元格值。 我收到錯誤線Range(Cell2).Value = Sum
Excel VBA範圍(單元格)。值=總和1004:應用程序定義或對象定義
編輯
thanx的答覆,在行範圍(小區2).value的= SUM 1,小區2指向像$ E $ 6格地址。
如果有比其它任何選項請讓我知道
我認爲沒有錯你的函數本身。由於您正在執行活動頁面上的所有範圍函數,請確保您的活動頁面是您要使用的頁面。還有一件事 - 檢查你傳遞給你函數的參數,因爲它們可能以某種方式導致錯誤 - 也就是說。將整數更改爲長/雙類型。並聲明'我'能夠在for循環中使用它。我不確定還有什麼可能導致錯誤彈出:/ – 2013-06-12 09:47:02
由於'ValueToChange'用於保存0-1000這樣的小vaslue,我用它來聲明'Integer'。 我也通過更改爲Long來檢查它,但仍然得到相同的錯誤。 –
@MhhirPatel:什麼是UDF試圖實現?目的? – shahkalpesh