Я пытаюсь написать код VBA для чтения значения из другого листа и затем вычисления значения в текущем. Код, который я написал:Вычисление значений ячейки
Function tell_me2()
Dim my_range As Range
Dim sheet_number As Integer
Dim my_row As Integer
Dim my_column As Integer
Dim my_value As Integer
sheet_number = ActiveSheet.Index
my_row = ActiveCell.Row
my_column = ActiveCell.Column
'MsgBox (sheet_number)
'MsgBox (my_row)
'MsgBox (my_column)
'MsgBox (Worksheets(sheet_number - 1).Cells(my_row, my_column - 1))
my_value = Worksheets(sheet_number - 1).Cells(my_row, my_column - 1)
'my_value = my_range.Value
MsgBox ("12 " & my_value)
'my_range = Worksheets(sheet_number - 1).Cells(my_row - 1, my_column - 1)
'my_range.Activate
Set my_range = Worksheets(sheet_number).Cells(my_row, my_column + 1)
' have also tried
Worksheets(sheet_number).Cells(my_row, my_column + 1) = my_value - 12
my_range.Value = my_value - 12
MsgBox ("All Done!")
End Function
При отладке я могу видеть, что my_value содержит правильное значение, но затем я получаю ошибку #value, а не значение, я хочу в правильной ячейке.
Может ли кто-нибудь указать мне в правильном направлении?
Это не имеет значения; Я не хочу, чтобы функция возвращала значение, я просто хочу, чтобы он установил значение ячейки. Я считаю, что проблема заключается в следующей строке: [code] Worksheets (sheet_number) .Cells (my_row, my_column + 1) = my_value - 12 [/ code] – user3474704
Mkay, поэтому вы не используете его как функцию в Excel и не используете в VBA, так что на самом деле это суб. Попробуйте отредактировать! – R3uK
Вы совершенно правы, это сделал трюк. Я не могу поверить, что у меня пропало нечто такое очевидное! Еще раз спасибо! – user3474704