首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用公式填充变量

如何使用公式填充变量
EN

Stack Overflow用户
提问于 2019-05-16 14:26:51
回答 1查看 27关注 0票数 0

基本的想法是有一个搜索,这不仅会突出显示列C中包含特定值的行,还会将我带到那里。基本上,我正在尝试将条件格式与CTRL+F函数相结合。

我的电子表格大约有6000行。

我尝试过各种不同的方法,但最接近的方法是使用下面的代码:

代码语言:javascript
复制
=MATCH($U$1, $C2:$C6000,0) 

为了得到行中的文本与我在单元格U1中的“搜索框”中输入的值相匹配的行。此单元格是我冻结的标题栏的一部分,因此它在屏幕上始终可用。

这将返回我的搜索范围中的行,假设是1175。因为我有一个冻结的标题行,所以我的目标行最终将是实际电子表格中的第1176行。我的目标是让Excel转到第1176行,突出显示该行,并选择该行作为活动行,这样我就可以立即处理该行。

我使用这个公式来生成实际的单元格引用:

代码语言:javascript
复制
=CONCATENATE("C",MATCH($U$1, $C2:$C6000,0)+1)

我的问题是,我不能找到一种方法,让Excel根据上述论坛的结果直接跳到1176行。因此,我的解决方案是VBA中的一个简短的sub:

代码语言:javascript
复制
Sub Go_To()
    Dim Target_Cell As String
    Target_Cell = CONCATENATE("C",MATCH($U$1, $C2:$C6000,0)+1)
    Range(Target_Cell).Activate
End Sub

这不管用,我也不知道为什么。该变量似乎与C1176不匹配。当我在Excel中使用forumal时,它工作正常,并显示正确的单元格引用,但它在VBA中不起作用。

有人能解释一下为什么它在那里失败了吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-16 14:42:03

您需要以正确的方式使用WorksheetFunction.Match method。和字符串在VBA中与&连接:

代码语言:javascript
复制
Option Explicit

Public Sub JumpTo()
    Dim MatchedRow As Double
    On Error Resume Next 'next line throws error if no match is found
    MatchedRow = Application.WorksheetFunction.Match(Range("U1"), Range("C2:C6000"), 0)
    On Error Goto 0 'always re-activate error reporting

    If MatchedRow <> 0 Then
        Range("C" & MatchedRow + 1).Select
    Else
        MsgBox "'" & Range("U1") & "' was not found."
    End If
End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56162092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档