以绝对和相对术语来指代excel单元格

时间:2013-07-01 07:51:38

标签: excel vba

假设我有一个给定范围作为函数的参数:

Function wrapper(current As range)

现在我想得到 far 左边的单元格的值(列A)。

例如,如果当前单元格为H12,我希望得到A12中的单元格文本。

感谢您的帮助


好吧,让我们忽略上面的问题。一般来说,我想要实现的是获取Range类型的变量。在下面的例子中:

Function wrapper(current As range)
Set hardwarePos = Cells(current.Row, 1)

我的hardwarePos类型为Set,我无法将其传递给另一个函数(GetFormula(var as Range)。:

Function wrapper(current As range)
Set hardwarePos = Cells(current.Row, 1)
wrapper = GetFormula(hardwarePos)

这不起作用......


谢谢你的提示。我喜欢KazJaw解决它的方式,但我有一些问题。为什么这不起作用:

Function wrapper(current As range)
Dim hardwarePos As range
hardwarePos = Cells(current.Row, 1)
wrapper = hardwarePos.Text
End Function

2 个答案:

答案 0 :(得分:2)

作为公式(没有VBA)

=INDIRECT(ADDRESS(ROW(),1))

使用 VBA

Function wrapper(current As Range)
wrapper = Sheets(current.Parent.Name).Cells(current.Cells(1).Row, 1).Value
End Function

答案 1 :(得分:-1)

使用此:

Public Function wrapper(current As String)
    Dim newCell As String
    newCell = Range(current).Offset(0, -1).Address

    ' Range(newCell).Select
    ' Range(newCell).value = "blabla"
End Function

它从当前单元格获取地址并使用它以列的形式获取前一个单元格的地址(使用offset函数,-1表示“一列剩余”)

然后使用Range(newCell)你可以用那个单元做你想做的事,选择,写作,ecc。

您可以使用:wapper(MyCell.Address)

调用包装器