gpt4 book ai didi

VBA InStr 始终返回 0

转载 作者:行者123 更新时间:2023-12-03 00:25:54 24 4
gpt4 key购买 nike

我正在使用 Excel 2010 并尝试创建一个函数,该函数将根据用户输入替换工作表中的部分链接。更具体地说,我尝试替换链接以匹配用户的 Dropbox 位置。

这是我到目前为止的代码

Private Sub CommandButton1_Click()

Dim DropboxFolder As String
Dim SearchFor As String
Dim SearchPos As Integer

SearchFor = "Dropbox"

With Application.FileDialog(msoFileDialogFolderPicker)
.AllowMultiSelect = False
.Show
On Error Resume Next
DropboxFolder = .SelectedItems(1)
For Each theHyperLink In ActiveSheet.Hyperlinks
SearchPos = InStr(0, SearchFor, theHyperLink.Address, vbBinaryCompare)
theHyperLink.Address = DropboxFolder
Next
Err.Clear
On Error GoTo 0
End With

End Sub

我尝试过调试代码,并在以下位置添加了断点

SearchPos = InStr(0, SearchFor, theHyperLink.Address, vbBinaryCompare) 

SearchFor 为 “Dropbox”,TheHyperLink.Address 为 “..\Dropbox\Salgdanmarks Salgsakademi\1\Ny Microsoft Word Document.docx”

但 SearchPos 设置为 0

我做错了什么?

最佳答案

我意识到这些评论是暂时的,所以我将其作为答案。这也将对任何 future 的访问者有所帮助。

Instr 的语法是

InStr([start, ]string1, string2[, compare])

InStr 函数语法具有以下参数:

  1. 开始(可选)。设置每次搜索的起始位置的数字表达式。如果省略,则从第一个字符位置开始搜索。如果 start 包含 Null,则会发生错误。如果指定了比较,则需要起始参数。
  2. 字符串1(必需)。 正在搜索字符串表达式。
  3. 字符串2(必需)。字符串表达式寻求
  4. 比较(可选)。指定字符串比较的类型。如果比较为 Null,则会发生错误。如果省略比较,则选项比较设置确定比较类型。指定有效的 LCID (LocaleID) 以在比较中使用特定于区域设置的规则

因此,在您的情况下,您需要反转变量。

SearchPos = InStr(1, theHyperLink.Address, SearchFor, vbTextCompare)

关于VBA InStr 始终返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25377838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com