【问题标题】:Using .find method with hidden workbook对隐藏的工作簿使用 .find 方法
【发布时间】:2014-05-07 14:28:54
【问题描述】:

是否可以使用.find 方法在隐藏的工作簿中查找数据?

我有用户表单,它将数据保存到打开(但隐藏)的工作簿。我想确保当我在其中一个文本框中输入 invoive 时,它​​之前没有插入。

我考虑过使用 .find 方法,但它给了我错误 91 对象变量或未设置块。

我检查了这些变量并设置了它们,但我想出了一个想法,它可能不适用于隐藏的工作簿。

下面我粘贴了部分代码。错误出现在If skoroszyt...

If Lastrow <> 1 And nr_faktury <> "" Then



    If skoroszyt.Worksheets(nazwa_arkusza).Range(faktury_range).Find(nr_faktury) = True Then
        MsgBox ("Podany nr faktury został podany w fakturze nr" & _
        skoroszyt.Worksheets(nazwa_arkusza).Range(faktury_range).Find(nr_faktury).Address & vbNewLine & _
        "Faktura nie została zapisana")
        Exit Sub
    End If

End If

【问题讨论】:

  • 你的意思是If Not skoroszyt.Worksheets(nazwa_arkusza).Range(faktury_range).Find(nr_faktury) Is Nothing Then

标签: excel find hidden userform vba


【解决方案1】:

我想你的意思是这个:

Dim rng As Range

If Lastrow <> 1 And nr_faktury <> "" Then
    Set rng = skoroszyt.Worksheets(nazwa_arkusza).Range(faktury_range).Find(What:=nr_faktury, _
                                                                            LookAt:=xlWhole, _
                                                                            LookIn:=xlValues, _
                                                                            MatchCase:=False)
    If Not rng Is Nothing Then
        MsgBox "Podany nr faktury zostal podany w fakturze nr" & _
            rng.Address & vbNewLine & "Faktura nie zostala zapisana"
        Exit Sub
    End If
End If

对于部分匹配,将LookAt:=xlWhole 更改为LookAt:=xlPart

【讨论】:

  • 不错!我认为这是由于我的工作簿被隐藏造成的,但如果声明是错误的 :) 感谢 simoco,它完全按照我的意愿工作。
猜你喜欢
  • 2013-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-27
  • 2013-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多