【问题标题】:How to put space in between ranges?如何在范围之间放置空间?
【发布时间】:2022-01-06 04:11:41
【问题描述】:

现在我有这段代码,我试图在单元格之间插入空格:

Sub Otdelniy_PDF_GIALLO()

Dim CellValue As String
Dim Path As String
Dim FinalFileName As String
MyString = Space(1)

    Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:="R:\users402\AUDIT\AUDIT POLAND\AUDIT GIALLO\AUTO_INVOICES\" & Range("A2") & Space(1) & Range("A6") & Space(1) & Range("D4") & Space(1) & Range("B3") & ".pdf"
End Sub

我也试过 & " " &; + " " +; "&nbsp" - 没有任何结果,错误 1004

【问题讨论】:

  • 错误信息是什么?我们并没有真正研究和保存错误代码字典..
  • 试试"R:\users402\AUDIT\AUDIT POLAND\AUDIT GIALLO\AUTO_INVOICES\" & Range("A2") & " " & Range("A6") & " " & Range("D4") & " " & Range("B3") & ".pdf"。确保文件名有效。 (即没有无效字符)
  • 我想了解为什么...&" "&......&space(1)@... 不同。没错,第一个更短,但还有其他区别吗?
  • @Luuk 我不这么认为,但为什么要使用只有 1 个空格的函数呢?我认为问题在于它是一个无效的文件名
  • premature optimization is the root of all evil,好吧,也许不是对所有人,但至少对一些邪恶的人来说。现在,您在评论中分享了一个与产生错误的解决方案没有区别的解决方案。

标签: excel vba range filenames


【解决方案1】:

a) 使用&,而不是+ 在VBA 中连接字符串。 + 如果您正在处理字符串(并且仅处理字符串),则将起作用,但如果其中一个术语是数字则失败,因为在这种情况下,VBA 将尝试添加数字。 & 明确用于字符串连接。

b) " "space(1) 之间没有区别,所以只是口味问题。
&nbsp 不起作用,VBA 不知道它 - 和即使不是,它也不会起作用,因为不可破坏的空格字符与空格字符不同。

c) 您应该将文件名写入变量并将其转储到即时窗口。查看输出,很可能您的名称中有拼写错误,或者您指的是错误工作表的单元格 - 目前您的代码访问的活动工作表可能不是您所期望的。

d)如果文件名看起来不错,请将名称复制到剪贴板,切换到 Excel 并尝试手动导出,使用即时窗口中的文件名。

Dim pdfFilename As String
pdfFilename = "R:\users402\AUDIT\AUDIT POLAND\AUDIT GIALLO\AUTO_INVOICES\" _
            & Range("A2") & Space(1) & Range("A6") & Space(1) & Range("D4") & Space(1) & Range("B3") _
            & ".pdf"
Debug.Print pdfFilename 
Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=pdfFilename 

【讨论】:

  • 虽然我可以看到这个答案对 OP 有什么帮助......只是一个友好的提醒,如果你认为这个问题是由拼写错误引起的......有一个标志。最终,如果这个问题将来对任何人都没有用,那么这个答案也不会。
  • @CallumDA 这是现在 SO 的普遍问题:几乎没有任何问题对任何人都有用,至少对 VBA 没有。至少 OP 在询问之前尝试了一些东西。
猜你喜欢
  • 2017-12-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-28
  • 1970-01-01
相关资源
最近更新 更多