3

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

Function wrapper(current As range)

现在我想获取左边的单元格的值(列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
4

2 回答 2

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
于 2013-07-01T09:01:34.213 回答
-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)

于 2013-07-01T08:04:35.293 回答