【问题标题】:How to use substring in VBA ? (Convert a String to a decimal with substring)如何在 VBA 中使用子字符串? (使用子字符串将字符串转换为小数)
【发布时间】:2017-03-31 09:28:14
【问题描述】:

我试图从 Excel 表格的单元格中提取字符串并将其转换为 Double。之后,我想将 Double 格式化为货币并删除货币符号。

不幸的是,我总是收到错误

运行时错误 424:需要对象

Dim price_right_str As String
Dim price_right As Double


price_right_str = ActiveSheet.Cells(a, b_new).Value
price_right = CDbl(Val(price_right_str))
price_right_str = FormatCurrency(price_right, 2)
price_right_str = price.Substring(1, (Len(price_right_str) - 1))

如果能提供任何更好的解决方案,我将不胜感激。我所需要的只是输出(理论上)没有货币符号的价格。

【问题讨论】:

  • 65 65,5 我想要类似的东西:65,00; 65,50
  • 试试preis_right_str = Format(ActiveSheet.Cells(a, b_new).Value,"0.00")
  • 你已经解决了我的问题,但我也测试了
  • 好的,谢谢你的帮助^^
  • @Z3RP 以后请用英语提问,否则将被关闭。

标签: vba string type-conversion format


【解决方案1】:

VBA 没有名为SubString() 的字符串函数。请改用Right(str)Mid(str)Left(str)

正如@YowE3K 在 cmets 中提到的,这就是答案: price_right_str = Mid(price_right_str, 2)price_right_str = Left(price_right_str, Len(price_right_str) - 1)

【讨论】:

  • Ich hatte vergessen zu schreiben das ich noch so eine Funktion erstellt habe Public Function Substring(startIndex As Integer, length As Integer) As String End Function
  • @Z3RP - 然后使用Substring(1, (Len(preis_right_str) - 1)) 而不是preis.Substring(1, (Len(preis_right_str) - 1))
  • @YowE3K 程序是如何知道我想使用哪个字符串的?
  • @Z3RP - 啊 - 这个函数有什么作用?请出示代码。是macht die Funktion吗? Bitte geben Sie den Code an.
  • @Z3RP - 这个函数根本不做任何事情。我想你只想使用preis_right_str = Mid(preis_right_str, 2)preis_right_str = Left(preis_right_str, Len(preis_right_str) - 1)
猜你喜欢
  • 2013-12-05
  • 2016-05-26
  • 2018-05-02
  • 1970-01-01
  • 2015-12-28
  • 2015-09-05
  • 1970-01-01
  • 2022-11-12
  • 2015-09-23
相关资源
最近更新 更多