excel - 引用公式中的单元格地址/引用

标签 excel vba

我想通过 MIN 函数内的地址(例如,C800)引用包含文本的最后一个单元格。你能帮忙吗?

Sub Set_Formula()
' -----------------------------

Dim lastRow As Long
Dim Lastcell As Range
Dim LC As String

Set Lastcell = Range("C:C").Find("*", Range("C1"), SearchDirection:=xlPrevious)
Set LC = Lastcell.Address()

'find last cell in the row
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Dim r As Long
For r = 2 To lastRow
    If (Cells(r, 3).Value <> "") Then 
        Range("E8") _
        = "=MIN(C2:LC)" 'The MIN function 
    End If
Next
End Sub

最佳答案

这不是我会这样做的方式,而是:

Range("E8") _
    = "=MIN(C2:" & LC & ")" 'The MIN function
End If

并且,在您的代码中,由于 LC 是字符串而不是对象,请务必删除 Set单词。

当然,这会将静态公式放入 E8 .

因此,如果列 C更改(例如,在 LC 下方添加了更多数据),您需要将公式重写到工作表中。

如果您更喜欢自动调整以更改 C 列中的行数的公式,您可以使用:
=MIN(INDEX($C$2:INDEX($C:$C,LOOKUP(9.9E+307,$C:$C,ROW($C:$C))),0,1))

编辑 : (公式说明)

该公式使用 LOOKUP 的一个特征函数查找最后一行。当lookup_value大于 lookup_array 中的任何值, LOOKUP将匹配 lookup_array 中的最后一个值.由于我们使用可选的 result_vector论据,LOOKUP返回匹配位置的值,即该行号。

通过使用一个非常大的数字作为查找值,接近 Excel 中允许的最大数字,我们保证 lookup_array 中不会有更大的数字。

然后我们使用 INDEX创建以 C2 开头的数组的函数(或您为起始单元格输入的任何内容)并结束和 Cn在哪里 nLOOKUP 返回的行号功能。

关于excel - 引用公式中的单元格地址/引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59379252/

相关文章:

excel - 如何设置宏创建的文件的位置

VBA - 范围.行.计数

excel - 复制一堆工作表并使用原始工作表的范围保存?

excel - 检查 Excel 单元格是否存在于列中的另一个工作表上 - 并返回不同列的内容

vba - 是否可以在运行时修改 Excel VBA 引用(在运行时加载加载项之后)?

excel - 如何将形状复制到另一个工作表(而不是图片)?

excel - 使用 VBA 删除 Excel 表格行

excel - vba,如何压缩带有特殊字符的文件?

linux - 在 Linux 服务器中运行 Excel 宏

excel - VBA插入函数VLOOKUP到范围,在其他工作簿中查找范围