如何防止为一个 Excel 工作簿编写的 VBA 影响其他工作簿

如何防止为一个 Excel 工作簿编写的 VBA 影响其他工作簿

我在 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)

相关内容