我有一张包含多张纸的Excel。在每张表中,我想要一个特定的单元格(让它称之为BANK单元格)来显示它上面的单元格的值。但是它上面可能有多个空单元格,直到它到达实际包含数值的单元格。 每个工作表都有自己的BANK单元格,每个工作表的每个BANK单元格都应该有自己的值(在自己的工作表中)。
我写了一个VBA来实现这个目标。起初它看起来很成功。但很快我意识到,虽然我原本打算让每个工作表的BANK单元独立于每个工作表,但我的VBA脚本实际上将它们全部链接在一起。 例如,在表1中,如果BANK单元格上方的单元格具有值100,则BANK单元格自动显示100,完美。 然后我转到表2,完成我的工作,最终在表2中,BANK单元格上方的单元格值为200,而表格2中的BANK单元格也显示200,仍然是完美的。 但是如果我现在回到第1页,我会发现表1中的BANK单元已经变为200而不是预期的100。 如果我现在再次重新输入表1中的公式,是的,它将更正表1中的BANK单元格,但现在表单2不正确。
我如何"取消链接"它们,以便脚本只找到特定表格的特定值?
Function FindBalance() As Double
Application.Volatile True
Dim N As Long
For N = 1 To 13
Dim BalanceCheck As Double
Dim CellRow As Integer
Dim Current_cell As Range
Sheets(N).Activate
Set Current_cell = Columns(3).Find("Total Money left in bank account", LookIn:=xlValues, lookat:=xlPart, SearchOrder:=xlByColumns, MatchCase:=False)
CellRow = Current_cell.Row
BalanceCheck = 0
While BalanceCheck = 0
If Cells(CellRow - 1, "F").Value = "" Then
CellRow = CellRow - 1
Else
BalanceCheck = Cells(CellRow - 1, "F").Value
End If
Wend
FindBalance = BalanceCheck
Next N
End Function