我正试图运行代码来填充单元格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)