VBA-获取具有已知单元格地址的值
VBA-get values with known cell address
我正在尝试获取包含特定文本的行的值。 Say Liquidity Coverage Ratio 是 B57 中可用的文本。我需要 C57 和 D57 的值。我已经实现了直到检索到包含文本的单元格的地址。
请帮助我进一步进步。
If fCheckSheet(forecastWorkbook, "Calculator (FX net)") Then
wsForecast.Activate
Else
ErrorStatus = "Source Sheet:Calculator (FX net) not found"
msgBoxReturn = MsgBox(ErrorStatus & forecastWorkbook.FullName, vbExclamation + vbOKCancel)
End If
Set rngRatio = FindRangeOfText(wsForecast, "Liquidity Coverage Ratio")
'Gets the address of cell having
RatioAddress = rngRatio.Address
'The address is $B
'???? how to retreive values for $c and $D
非常感谢Whosebug用户的回复,是他们让我从小白成长到现在这个水平。感谢您的耐心等待。
此致,
马尼
假设你引用的函数(但没有提供代码支持)将returnRange
类型对象(或Nothing
),那么你可以简单地使用Offset
方法:
If Not rngRatio Is Nothing Then
With rngRatio
Debug.Print .Offset(0,1).Address, .Offset(0,1).Value '$C
Debug.Print .Offset(0,2).Address, .Offset(0,2).Value '$D
End With
End If
还有一种鲜为人知的方法可以做同样的事情:
If Not rngRatio Is Nothing Then
With rngRatio
Debug.Print .Cells(1, 2).Value
Debug.Print .Cells(1, 3).Value
End With
End With
我更喜欢第一种方法,因为它是明确的而不是隐含的。这种方法不太清楚,因为不是每个人都凭直觉知道可以使用 Cells
属性 引用范围对象 外部 的单元格,例如:
MsgBox Range("A1").Cells(1, 4).Address ' --> $E
MsgBox Range("A1").Cells(4, 2).Address ' --> $B
我正在尝试获取包含特定文本的行的值。 Say Liquidity Coverage Ratio 是 B57 中可用的文本。我需要 C57 和 D57 的值。我已经实现了直到检索到包含文本的单元格的地址。
请帮助我进一步进步。
If fCheckSheet(forecastWorkbook, "Calculator (FX net)") Then wsForecast.Activate Else ErrorStatus = "Source Sheet:Calculator (FX net) not found" msgBoxReturn = MsgBox(ErrorStatus & forecastWorkbook.FullName, vbExclamation + vbOKCancel) End If Set rngRatio = FindRangeOfText(wsForecast, "Liquidity Coverage Ratio") 'Gets the address of cell having RatioAddress = rngRatio.Address 'The address is $B '???? how to retreive values for $c and $D
非常感谢Whosebug用户的回复,是他们让我从小白成长到现在这个水平。感谢您的耐心等待。
此致,
马尼
假设你引用的函数(但没有提供代码支持)将returnRange
类型对象(或Nothing
),那么你可以简单地使用Offset
方法:
If Not rngRatio Is Nothing Then
With rngRatio
Debug.Print .Offset(0,1).Address, .Offset(0,1).Value '$C
Debug.Print .Offset(0,2).Address, .Offset(0,2).Value '$D
End With
End If
还有一种鲜为人知的方法可以做同样的事情:
If Not rngRatio Is Nothing Then
With rngRatio
Debug.Print .Cells(1, 2).Value
Debug.Print .Cells(1, 3).Value
End With
End With
我更喜欢第一种方法,因为它是明确的而不是隐含的。这种方法不太清楚,因为不是每个人都凭直觉知道可以使用 Cells
属性 引用范围对象 外部 的单元格,例如:
MsgBox Range("A1").Cells(1, 4).Address ' --> $E
MsgBox Range("A1").Cells(4, 2).Address ' --> $B