【问题标题】:VBA : Sub or Function Not Defined Compiler Error While Using SearchVBA:使用搜索时未定义子或函数编译器错误
【发布时间】:2018-12-12 05:28:40
【问题描述】:

我非常卡住,我搜索但我没有得到满意的解决方案

下面是我的代码

Dim i As Integer    
Dim k As Integer    
Dim Values As String    
Dim x As String

Worksheets("Pivot").Activate

Values = Range("B3").Value    
'Values = Mid(Values, 5, 16)    
'k = Search("|", Values)

x = Mid(Value, Search("|", Value) + 1, Search("|", Value, Search("|", Value) + 1) - Search("|", Value) - 1)))

MsgBox "" & x

注意:

错误是“子或函数未定义”,只有当我使用搜索公式时,我才会收到此编译器错误,当我使用 Mid 公式时(被评论的那个我没有收到错误“任何人都有任何解决方案可以帮我 。 在代码中,我试图提取出现“|”之间的单元格中包含的字符串包含在单元格中的整个字符串中。

【问题讨论】:

  • 您的变量与您设置的变量不匹配,Values Vs Value。
  • Search在vba中不存在,使用instr
  • 实际使用:x=split(Values,"|")(1)返回第一个和第二个|之间的值
  • VBE 应该准确地突出显示您的代码有什么问题。模块顶部是否指定了Option Explicit

标签: vba excel excel-formula excel-2010 excel-2007


【解决方案1】:

搜索是一个工作表功能。在 vba 中相当于 Instr.

但在这种情况下,使用 Split 会更轻松地返回您想要的结果:

Dim Values As String    
Dim x As String

Values = Worksheets("Pivot").Range("B3").Value 

x=split(Values,"|")(1)

MsgBox "" & x

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多