gpt4 book ai didi

VBA 使用工作表名称引用单元格无法正常工作

转载 作者:行者123 更新时间:2023-12-03 01:09:02 26 4
gpt4 key购买 nike

摘要:我正在编写一个宏,它从 Excel 文件中的许多不同工作表中获取名称,并将它们一起编译到“主列表”中,但我在引用单元格时遇到了问题另一张纸。

问题:当我使用工作表名称作为 Sheets("MasterList").ActiveCell.Offset(0, 1) 的引用来引用特定单元格时,什么也没有被拾取。但是,当我删除 Sheets("MasterList") 时,宏可以正常工作(宏当前位于“MasterList”上,这是唯一可行的方法)。此外,我的代码中工作表名称的拼写是正确的。

问题:为什么会发生这种情况?代码背后的逻辑似乎很合理,而且我的工作表名称拼写正确。

代码:

Do              

If Sheets("MasterList").ActiveCell.Offset(0, 1) = firstName Then 'IF FIRST AND LAST NAMES MATCH, EXIT THE CHECK

Exit Do

End If

On Error Resume Next

Cells.Find(What:=lastName, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

Loop Until Err.Number > 0

最佳答案

ActiveCellApplication 对象的属性,而不是 Sheet

只有一个ActiveCell,它是当前事件工作表上的事件单元格。

尚不完全清楚您要做什么。但一般来说,您应该避免使用此类代码的 SelectActivate。使用类似的东西:

Dim wsMasterList as Worksheet
Set wsMasterList = Thisworkbook.WorkSheets("MasterList") ' assuming the vba code is in the workbook containing MasterList

要跟踪 MasterList 中最后使用的单元格,请使用类似的变量

Dim rMasterList as Range
Set rMasterList = wsMasterList.Cells( ... ' Specify the cell you want

然后使用 rMasterList.Offset(0, 1) 引用相对于该单元格的单元格

搜索 MasterList 使用:

Dim cl as Range
Set cl = wsMasterList.UsedRange.Find( ... )
If Not cl Is Nothing Then
' cl will be Nothing if the search term is not found
' ...

关于VBA 使用工作表名称引用单元格无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12126399/

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