计算单元格值

我正在尝试编写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 

debugging时,我可以看到my_value包含正确的值,但然后我得到一个#VALUE错误,而不是我想要在正确的单元格中的值。

有人能指点我的方向吗?

你只是错过了你的函数的输出,在VBA中,它就是这样的:

 Name_of_the_Function = OutPut 

OutPut可以是任何types的variables,所以你的代码如下所示:

 Sub tell_me2() Dim my_range As Range Dim sheet_number As Integer Dim my_row As Long Dim my_column As Long Dim my_value As Integer sheet_number = ActiveSheet.Index my_row = ActiveCell.Row my_column = ActiveCell.Column my_value = Worksheets(sheet_number - 1).Cells(my_row, my_column - 1) Set my_range = Worksheets(sheet_number).Cells(my_row, my_column + 1) MsgBox my_range.Address my_range.Value = my_value - 12 MsgBox ("All Done!") End Sub