gpt4 book ai didi

vba - 复制字符串中特定单词之前的前一个单词

转载 作者:行者123 更新时间:2023-12-04 21:15:04 25 4
gpt4 key购买 nike

我有一个文本文件,它看起来像......

Blade Runner 2049 http://www.imdb.com/title/tt1856101

Kingsman: The Golden Circle http://www.imdb.com/title/tt4649466

The Crucifixion http://www.imdb.com/title/tt4181782/

我的代码可以在文本文件中找到所有行“ http://www.imdb.com/title”并复制“ http://www.imdb.com/title”之前的前一个单词(电影名称)并将它们粘贴到 Excel 单元格中。
Sub GetText()
Dim fName As String, Word1 As String, Word2 As String, i As Long, s As String, st As String
fName = "C:\Test\test1.txt"
st = "http://www.imdb.com/title"
Open fName For Input As #1
Do Until EOF(1)
Word1 = Word2
Input #1, Word2
If (Word2 = st & ">") Or (Word2 Like st & "/*") Then
If Trim$(Word1) <> "" Then i = i + 1: Cells(i, 1) = Word1
ElseIf Word2 Like "* " & st & "/*" Then
Word1 = Trim$(Split(Word2)(1))
If Trim$(Word1) <> "" Then i = i + 1: Cells(i, 1) = Word1
End If
Loop
Close #1
End Sub

但是此代码仅粘贴电影名称中的第一个单词。我需要更改什么才能粘贴完整的电影名称?

最佳答案

一个非常简单的方法是使用 Split() function .

Sub Test()

Dim OrigStr$, YourMovie$
OrigStr = "Kingsman: The Golden Circle http://www.imdb.com/title/tt4649466"

YourMovie = Split(OrigStr, " http:")(0)
MsgBox YourMovie

End Sub
(0)在函数的末尾声明您想要在找到的单词之前的整个字符串。相反,使用 (1)表示您想要找到的单词第一次迭代后的字符串(“http:”), (2)对于该工作的第二次迭代之后的字符串,等等。

请注意:您仍然可以使用 Split()不使用 (i) , ( Split() ,而不是 Split()(i) )。当您使用此方法时,您实际上是将值返回到数组而不是字符串。

如果要将值返回到数组,则这是上述的另一个示例:
Sub Test()

Dim OrigStr$, OrigStrArr$(), YourMovie$
OrigStr = "Kingsman: The Golden Circle http://www.imdb.com/title/tt4649466"

OrigStrArr = Split(OrigStr, " http:")
YourMovie = OrigStrArr(0)
MsgBox YourMovie

End Sub

关于vba - 复制字符串中特定单词之前的前一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47111477/

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