当前位置:编程学习 > VB >>

vba 截取字符串问题

一个地址字符串:"C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx"

我想用vba截取最后的名字“1234.xlsx”

应该怎么做?  前面的地址是不确定的,怎么取 vba ,字符串截取 "C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx"是个Variant类型的。 mid$("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx",instrrev("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx","\")+1)

提个建议,用String别用Variant。有隐患。
引用 2 楼 ChoasRules 的回复:
mid$("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx",instrrev("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx","\")+1)

提个建议,用String别用Variant。有隐患。

我觉得任何类型都不应该用 Variant 。

String 用Variant, 有什么隐患?
没听说过呀, 难道是“全数字”的字符串有歧义吗?我觉得也不会嘛。

引用 3 楼 Chen8013 的回复:
我觉得任何类型都不应该用 Variant 。

String 用Variant, 有什么隐患?
没听说过呀, 难道是“全数字”的字符串有歧义吗?我觉得也不会嘛。


请教一下,下面这段代码的变更var1除了使用Variant类型,还可以使用什么类型?
var1 = Worksheets("SheetName").Range("A1:B2").Value2
引用 4 楼 subMain 的回复:
Quote: 引用 3 楼 Chen8013 的回复:

我觉得任何类型都不应该用 Variant 。

String 用Variant, 有什么隐患?
没听说过呀, 难道是“全数字”的字符串有歧义吗?我觉得也不会嘛。


请教一下,下面这段代码的变更var1除了使用Variant类型,还可以使用什么类型?
var1 = Worksheets("SheetName").Range("A1:B2").Value2


单独说这个“值”,倒是没得替代……

但是你可能也知道,有多种方式能够实现相同的作用。
并且,这个“值”除了用在Excel的Sheet.Range( ) 赋值之外,恐怕没别的用场。
  但是,在这之前也说了,要完成这个,又有别的多种明确类型的操作方法。
引用 3 楼 Chen8013 的回复:
Quote: 引用 2 楼 ChoasRules 的回复:

mid$("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx",instrrev("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx","\")+1)

提个建议,用String别用Variant。有隐患。

我觉得任何类型都不应该用 Variant 。

String 用Variant, 有什么隐患?
没听说过呀, 难道是“全数字”的字符串有歧义吗?我觉得也不会嘛。



哦,这个问题,我不是单指string型,其实如果能明确类型的都不应该用variant。有几个原因,比如代码可读性差,

且Variant 变量中有 Currency、 Double 值超过它们各自的范围时,会发生错误。我只是提醒一下楼主,尽量不要用,

不知道哪就会出现问题。提醒而已。
引用 6 楼 ChoasRules 的回复:
Quote: 引用 3 楼 Chen8013 的回复:

Quote: 引用 2 楼 ChoasRules 的回复:

mid$("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx",instrrev("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx","\")+1)

提个建议,用String别用Variant。有隐患。

我觉得任何类型都不应该用 Variant 。

String 用Variant, 有什么隐患?
没听说过呀, 难道是“全数字”的字符串有歧义吗?我觉得也不会嘛。



哦,这个问题,我不是单指string型,其实如果能明确类型的都不应该用variant。有几个原因,比如代码可读性差,

且Variant 变量中有 Currency、 Double 值超过它们各自的范围时,会发生错误。我只是提醒一下楼主,尽量不要用,

不知道哪就会出现问题。提醒而已。

这个“Variant类型”,似乎只有VB中才有的。
我了解的其它几种常见的计算机语言,好象都没“Variant类型”(或者类似Variant的数据类型)。
我写的VB/VBA代码中,就从来没用Variant类型。
引用 7 楼 Chen8013 的回复:
Quote: 引用 6 楼 ChoasRules 的回复:

Quote: 引用 3 楼 Chen8013 的回复:

Quote: 引用 2 楼 ChoasRules 的回复:

mid$("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx",instrrev("C:\Documents and Settings\Administrator\デスクトップ\1234.xlsx","\")+1)

提个建议,用String别用Variant。有隐患。

我觉得任何类型都不应该用 Variant 。

String 用Variant, 有什么隐患?
没听说过呀, 难道是“全数字”的字符串有歧义吗?我觉得也不会嘛。



哦,这个问题,我不是单指string型,其实如果能明确类型的都不应该用variant。有几个原因,比如代码可读性差,

且Variant 变量中有 Currency、 Double 值超过它们各自的范围时,会发生错误。我只是提醒一下楼主,尽量不要用,

不知道哪就会出现问题。提醒而已。

这个“Variant类型”,似乎只有VB中才有的。
我了解的其它几种常见的计算机语言,好象都没“Variant类型”(或者类似Variant的数据类型)。
我写的VB/VBA代码中,就从来没用Variant类型。


其实这个类型在某些时候是有用的,比如variant类型的数组,每个元素的类型可以不一样。而且这种类型可以存储如empty\null这类的值。当然用过和没用过都很正常,这得看实际需要。

补充:VB ,  VBA
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,