vba - 如何在Excel VBA宏中分割字符串并忽略最后一部分

标签 vba excel

我有一个包含路径值的单元格,例如:

C:/Videos/New/VideoName.mp4

我只想采用该单元格的路径

所以我尝试了

elementArray = Split(Cells(4, 2), "/")

这样我就可以每次都连接该数组内的字符串

但是数组仍然具有完整路径

elementArray[0]=C:/Videos/New/VideoName.mp4

如何忽略文件名而单独取路径?

最佳答案

对于您是否使用和/或需要正斜杠(例如 /Chr(47))或反斜杠(例如 \Chr(92))。尝试这样的事情:

dim sPath as string, sFullPath as string
sFullPath = "C:/Videos/New/VideoName.mp4"   ' or C:\Videos\New\VideoName.mp4
if len(sFullPath) > len(replace(sFullPath, Chr(47), vbnullstring)) then
    sPath = replace(sFullPath, split(sFullPath, Chr(47))(ubound(split(sFullPath, Chr(47)))), vbnullstring)
    debug.print sPath & " with forward slashes"
elseif len(sFullPath) > len(replace(sFullPath, Chr(92), vbnullstring)) then
    sPath = replace(sFullPath, split(sFullPath, Chr(92))(ubound(split(sFullPath, Chr(92)))), vbnullstring)
    debug.print sPath & " with back-slashes"
else
    debug.print "unknown separator"
end if

查看 VBE 的立即窗口 (Ctrl+G) 以获取结果。

关于vba - 如何在Excel VBA宏中分割字符串并忽略最后一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29888947/

相关文章:

excel - 为什么在 Access 数据库中使用 VBA 打开和关闭多个 Excel 工作簿时偶尔会出现错误 91

excel - 将 VBA Datepicker 属性重置为可见

c# - 使用 Excel Interop c# 将单词替换为粗体单词

excel - 可以插入列值

excel - 选择行 "B"和 "C"中的所有值并向上移动 1 步

string - 固定字符串 * 7 会比 =Len(7) 的整数使用更少的内存吗?

vba - 尝试引用工作表中的复选框时出现“需要对象”错误

vba - Excel - 是否可以使字符在范围内显示为 "*"?

excel - 宏 - 将同一行中的某些单元格(由复选框触发)复制到不同的工作表

excel - VBA 从 Web 服务器导入 UTF-8 CSV 文件