VBA中的字符串连接

VBA中的字符串连接,vba,string-concatenation,Vba,String Concatenation,我有这个函数: Function GetFullNameCSV() As String GetFullNameCSV = Replace(ThisWorkbook.FullName, ".xlsm", ".txt") End Function Filename:= "C:\directory\filename.txt" Filename:= GetFullNameCSV() Connection:= "TEXT;C:\directory\filename.txt" Connecti

我有这个函数:

Function GetFullNameCSV() As String
   GetFullNameCSV = Replace(ThisWorkbook.FullName, ".xlsm", ".txt")
End Function
Filename:= "C:\directory\filename.txt"
Filename:= GetFullNameCSV()
Connection:= "TEXT;C:\directory\filename.txt"
Connection:= "\"TEXT;+GetFullNameCSV()+\""
如果代码看起来像这样硬编码:

Function GetFullNameCSV() As String
   GetFullNameCSV = Replace(ThisWorkbook.FullName, ".xlsm", ".txt")
End Function
Filename:= "C:\directory\filename.txt"
Filename:= GetFullNameCSV()
Connection:= "TEXT;C:\directory\filename.txt"
Connection:= "\"TEXT;+GetFullNameCSV()+\""
我可以用这个替换它,得到同样的结果:

Function GetFullNameCSV() As String
   GetFullNameCSV = Replace(ThisWorkbook.FullName, ".xlsm", ".txt")
End Function
Filename:= "C:\directory\filename.txt"
Filename:= GetFullNameCSV()
Connection:= "TEXT;C:\directory\filename.txt"
Connection:= "\"TEXT;+GetFullNameCSV()+\""
问题是它出现在这个字符串的情况下:

Function GetFullNameCSV() As String
   GetFullNameCSV = Replace(ThisWorkbook.FullName, ".xlsm", ".txt")
End Function
Filename:= "C:\directory\filename.txt"
Filename:= GetFullNameCSV()
Connection:= "TEXT;C:\directory\filename.txt"
Connection:= "\"TEXT;+GetFullNameCSV()+\""
我需要使用字符串连接,猜测如下内容:

Function GetFullNameCSV() As String
   GetFullNameCSV = Replace(ThisWorkbook.FullName, ".xlsm", ".txt")
End Function
Filename:= "C:\directory\filename.txt"
Filename:= GetFullNameCSV()
Connection:= "TEXT;C:\directory\filename.txt"
Connection:= "\"TEXT;+GetFullNameCSV()+\""

我需要使用什么代码?谢谢。

假设所有部分都用
分隔,只需将字符串拆分为各个部分,然后进行更改,然后再次将其连接在一起

因此,对于您的示例,我认为它类似于(请注意,是从内存中编写的,因此可能不完全正确):


+1但是。。。这可能可行,但它不是字符串连接,而是分隔字符串拆分、转换和连接。对我来说,这意味着代码将简单的东西变得复杂。这意味着我只想知道如何在VBA中进行字符串连接。请随意留下您建议的方法,但我确实需要/想要字符串连接的方法。@错误:嗯,我可能误解了您的问题,如果您只是在谈论将字符串连接在一起,那么您所需要的只是
&
运算符,因此它将是
“TEXT;”&strTemp
。然而,如果我正确理解了你的问题,那么我会说我的代码实际上很简单,因为在引擎盖下它可能会做很多事情,但这一切都是由VBA完成的,所以你不必担心细节。+1谢谢,其他人也发布了这一点,然后在我问这个问题之前删除了它。。。在我看来,似乎“TEXT;”&strTemp会输出“TEXT;”C:\directory\filename.txt,而我需要的是“TEXT;C:\directory\filename.txt”--再次感谢!所以,它起作用了——这很奇怪,我没有时间去想它。谢谢你给了我我需要的答案。干杯@错误:双引号(“”)是字符串分隔符,这意味着它们被剥离以查找其中的字符串。要获得您所说的预期输出,您需要
“TEXT;”&strTemp
。第一个引号打开字符串,第二个引号转义第三个引号使其成为文字(然后转义,文字,结束后)。