excel - 设置工作簿路径中的文本单元格引用
问题描述
我有一个 VBA 脚本,可以在我的桌面上打开一个不同的工作簿。路径中有两个变量决定了我希望打开的文件的位置:(1)PC 的用户;(2) 文件名。PC 变量的用户在单元格 J3 上定义,但在 J2 上定义文件的名称,两者都在同一张表上。代码如下:
Option Explicit
Sub Chakars()
Dim BeiguSheet As Worksheet
Dim FileJauda As String
Set BeiguSheet = ThisWorkbook.Sheets("Final")
FileJauda = "C:\Users\ugikam\Desktop\" & "Jauda_" & BeiguSheet.Range("J2").Value & ".xlsm"
Workbooks.Open (FileJauda)
End Sub
在定义 FileJauda 的行中,您可以看到对正常工作的单元格 J2 的引用。但是,当我尝试使用下面的行替换路径中的另一个变量(即“ugikam”的用户)时,它无法再找到该文件。问题出在哪里?这可能与“ugikam”是一串文本有关吗?
FileJauda = "C:\" & BeiguSheet.Range("J3").Value & "\Desktop\" & "Jauda_" & BeiguSheet.Range("J2").Value & ".xlsm"
解决方案
问题可能来自不可见的字符。我尝试使用以下代码清理两个字符串。此外,您可以使用恐吓窗口逐一调试和检查单元格值。最后,您尝试打开名称为FilePath的工作簿,该名称未在任何地方定义。尝试用 Workbooks.Open (FileJauda) 替换Workbooks.Open ( FilePath )
Option Explicit
Sub Chakars()
Dim BeiguSheet As Worksheet
Dim FileJauda As String
Set BeiguSheet = ThisWorkbook.Sheets("Final")
With BeiguSheet
FileJauda = "C:\" & _
Application.Clean(Application.Trim(.Range("J3").Value)) & _
"\Desktop\Jauda_" & _
Application.Clean(Application.Trim(.Range("J2").Value)) & _
".xlsm"
End With
Workbooks.Open (FileJauda)
End Sub
推荐阅读
- c# - C# 检查图像是否与容差相等
- python - 识别列条目首先更改符号的位置并将条目行保存到文件
- php - Laravel 无法将一个数据库的内容复制到另一个数据库
- python - 保存表单后如何为当前用户设置多对多字段
- scala - 如何配置 SBT 为依赖项和应用程序代码生成单独的 jar?
- ios - 如何检测照片是否是用 iPhone 拍摄的
- python - Pyglet 游戏动作滞后
- kubernetes - 几天后,我的 LoadBalancer 外部 IP 不起作用
- php - 相同的 MD5 哈希值,但使用 hash('md5') 的输入不同
- javascript - 将 gulp 脚本从 V3 转换为 V4 时出错