对象的方法'Range' '_Worksheet'在使用 Range( "Reference!D3" ) 时失败



我正试图运行代码来填充单元格F4与参考表中的值,并在G4中输入公式来计算在我的房间里的人数。所有这些都是基于D4中提供的信息(房间类型)。我已经包含了一个循环,以确保如果有"新房间";添加到工作表中,它将检查下面的单元格。在我做一些调整之前,代码正在工作,它显示了一个错误:

对象'_Worksheet'的方法'Range'失败

我已经检查了所有引用的单元格包含数据,但我不确定为什么还有错误。下面是我写的一小段代码:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Range("D4").Select
Do Until IsEmpty(ActiveCell)
'People Density
If Range("D4").Value = "Booking/Waiting" Then
Range("F4").Value = Range("Reference!D3").Value
ElseIf Range("D4").Value = "Cells without plumbing fixtures" Then
Range("F4").Value = Range("Reference!D4").Value
ElseIf Range("D4").Value = "Cells with plumbing fixtures" Then
Range("F4").Value = Range("Reference!D5").Value
End If

'# of People Calculation - ASHRAE
If Range("D4").Value = "Booking/Waiting" Then
Range("G4").Formula = "=(E4/1000)*Reference!D3"
ElseIf Range("D4").Value = "Cells without plumbing fixtures" Then
Range("G4").Formula = "=(E4/1000)*Reference!D4"
ElseIf Range("D4").Value = "Cells with plumbing fixtures" Then
Range("G4").Formula = "=(E4/1000)*Reference!D5"
End If

ActiveCell.Offset(1, 0).Select
Loop
End Sub

提前感谢任何和所有的帮助收到!

我怀疑代码有其他问题,或者至少我不完全理解代码的目的。

但具体问题可以通过纠正对其他工作表的引用来解决。

简单地使用:

Range("F4").Value = Worksheets("Reference").Range("D3").Value

代替:

Range("F4").Value = Range("Reference!D3").Value

并在使用Reference!的所有6个地方做同样的操作。

请参阅更多示例以参考Microsoft的其他工作表:https://learn.microsoft.com/en-us/office/vba/api/Excel.Range(object)

最新更新