gpt4 book ai didi

vba - 选择其他工作表或工作簿时尝试使用 ThisWorkbook 设置范围值时出现问题

转载 作者:行者123 更新时间:2023-12-02 13:51:54 26 4
gpt4 key购买 nike

如果选择了sheet1以外的其他工作表或工作簿,为什么代码在执行宏时不起作用?我需要这种格式的代码,以便稍后可以将单元格条目中的值更改为变量。有什么办法可以解决这个问题吗?

Sub testhsa()
ThisWorkbook.Sheets("Sheet1").Range(Cells(1, 1), Cells(2, 2)).Value = 1
End Sub

最佳答案

它不起作用,因为您没有限定语句的 Cells 组件。

您需要以下内容 - 请注意 Cells 之前的 .:

With ThisWorkbook.Sheets("Sheet1")
.Range(.Cells(1,1), .Cells(2, 2)).Value = 1
End With

编辑:对评论的进一步澄清。通过将 . 保留在工作表/范围/单元格之外,您就告诉 Excel 您需要事件父级。即 Cells(1, 1)ActiveSheet.Cells(1,1) 相同,而 Range("A1:D4") 是与ActiveSheet.Range("A1:D4")相同。

With 语句有效地告诉 Excel,后面的任何内容都与该对象“关联”,因此我的 3 行代码与以下内容完全相同:

ThisWorkbook.Sheets("Sheet1").Range(ThisWorkbook.Sheets("Sheet1").Cells(1,1), ThisWorkbook.Sheets("Sheet1").Cells(2, 2)).Value = 1

这向 Excel 表明,无论 ActiveWorkbook 是什么,您都希望代码访问运行代码的工作簿中的范围。

最后,如果您经常使用范围,您会希望将它们分配给一个变量,正如 HeadofCatering 正确建议的那样。

关于vba - 选择其他工作表或工作簿时尝试使用 ThisWorkbook 设置范围值时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17712866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com