我试图获取包含特定文本的行的值。说流动性覆盖率是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$57 '???? how to retreive values for $c$57 and $D$57
我非常感谢stackoverflow用户的反应,他们让我从新手成长到这个级别。谢谢你的耐心等待。
此致
摩尼
答案 0 :(得分:2)
假设您引用的函数(但未提供支持的代码)将返回Range
类型对象(或Nothing
),那么您只需使用Offset
方法:
If Not rngRatio Is Nothing Then
With rngRatio
Debug.Print .Offset(0,1).Address, .Offset(0,1).Value '$C$57
Debug.Print .Offset(0,2).Address, .Offset(0,2).Value '$D$57
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$1
MsgBox Range("A1").Cells(4, 2).Address ' --> $B$4