Excel VBA从带变量的单元格保存路径/名称

Excel VBA从带变量的单元格保存路径/名称,vba,excel,Vba,Excel,我使用单元格作为文件路径和文件名来保存工作簿的副本 这是我现在使用的代码,但它在每个单元格之间放置了空格。 注意只有ActiveSheet.Range单元格可能为空 Dim NewWb As Workbook sFile = Control_Sheet_VB.Range("H2") & "\" & ActiveSheet.Range("H8") & " " & ActiveSheet.Range("E10") & " " & ActiveSheet

我使用单元格作为文件路径和文件名来保存工作簿的副本

这是我现在使用的代码,但它在每个单元格之间放置了空格。 注意只有ActiveSheet.Range单元格可能为空

Dim NewWb As Workbook
sFile = Control_Sheet_VB.Range("H2") & "\" & ActiveSheet.Range("H8") & " " & ActiveSheet.Range("E10") & " " & ActiveSheet.Range("D14") & " - Ticket #" & Control_Sheet_VB.Range("B2") & Control_Sheet_VB.Range("C2") & ".xlsm"
Set OldWb = ActiveWorkbook
OldWb.SaveCopyAs sFile
Set NewWb = Workbooks.Open(sFile)
如果用作文件名的某些单元格是空的,那么文件名中就没有多余的空间,我该怎么做呢

sFile = Control_Sheet_VB.Range("H2") & "\" & _
        IIf(ActiveSheet.Range("H8") <> "", ActiveSheet.Range("H8") & " ", "") & _
        IIf(ActiveSheet.Range("E10") <> "", ActiveSheet.Range("E10") & " ", "") & _
        IIf(ActiveSheet.Range("D14") <> "", ActiveSheet.Range("D14") & " ", "") & _
        " - Ticket #" & Control_Sheet_VB.Range("B2") & _
        Control_Sheet_VB.Range("C2") & ".xlsm"
sFile=Control\u Sheet\u VB.Range(“H2”)和“\”和_
IIf(ActiveSheet.Range(“H8”)、ActiveSheet.Range(“H8”)和_
IIf(ActiveSheet.Range(“E10”)、ActiveSheet.Range(“E10”)和_
IIf(ActiveSheet.Range(“D14”)、ActiveSheet.Range(“D14”)和_
“-Ticket#”和控制表VB.Range(“B2”)和_
控制表VB.范围(“C2”)和“.xlsm”
您可以这样做:

sFile = Control_Sheet_VB.Range("H2") & "\" & _
        IIf(ActiveSheet.Range("H8") <> "", ActiveSheet.Range("H8") & " ", "") & _
        IIf(ActiveSheet.Range("E10") <> "", ActiveSheet.Range("E10") & " ", "") & _
        IIf(ActiveSheet.Range("D14") <> "", ActiveSheet.Range("D14") & " ", "") & _
        " - Ticket #" & Control_Sheet_VB.Range("B2") & _
        Control_Sheet_VB.Range("C2") & ".xlsm"
sFile=Control\u Sheet\u VB.Range(“H2”)和“\”和_
IIf(ActiveSheet.Range(“H8”)、ActiveSheet.Range(“H8”)和_
IIf(ActiveSheet.Range(“E10”)、ActiveSheet.Range(“E10”)和_
IIf(ActiveSheet.Range(“D14”)、ActiveSheet.Range(“D14”)和_
“-Ticket#”和控制表VB.Range(“B2”)和_
控制表VB.范围(“C2”)和“.xlsm”

Trim(ActiveSheet.Range(“H8”))等环绕每个引用是否解决了您的问题?是否使用
Trim(ActiveSheet.Range(“H8”))等环绕每个引用解决了您的问题?