我在 excel 中有一个如下所示的 VBA 函数,用于从上一个工作表中的相应单元格中选取值。当仅打开此工作簿(其中存在此公式)时,它可以正常工作。如果我打开另一个 excel 工作簿(例如 workbook2),第一个工作簿中的此 prevsheet 函数将从第二个工作簿中选取值,从而扰乱第一个工作簿的所有值。我如何修改此公式,以便此函数可以为此工作簿而不是其他打开的工作簿工作/选取值。
Function PrevSheet(rCell As Range)
Application.Volatile
Dim i As Integer
i = rCell.Cells(1).Parent.Index
PrevSheet = Sheets(i - 1).Range(rCell.Address)
End Function
答案1
我找到了解决这个问题的方法。
将“ThisWorkbook”添加到以下代码行
PrevSheet = Sheets(i - 1).Range(rCell.Address)
使其成为
PrevSheet = ThisWorkbook.Sheets(i - 1).Range(rCell.Address)