vba - 如何仅替换字符串中的某些空格?
问题描述
我为 Data 创建了一个导入函数。
有时导入字符串是这样的:
47588328 2020.06.25 11:42:13 买入 0.11 欧元 1.12240 1.11902 0.00000
2020.06.25 14:05:04 1.11902 0.00 0.00 0.00 -35.35
有时像这样
45881875
2020.05.25 19:53:14
buy
0.10
eurusd
1.08975
1.08999
1.09503
2020.05.26 10:49:17
1.09503
0.00
0.00
-0.48
51.14
我将值拆分为一个数组。如果字符串由换行符分隔,则没有问题。
如果字符串用空格分隔,我无法处理它。我试图用换行符替换空格。
这可行,但有日期和时间部分。它们必须保持在一起,当我用换行符替换空格时它们不会。
我有这个:
TextboxText = UserForm1.TextBox1.Text
TextboxText = Replace(TextboxText, " ", vbLf)
我的一个想法是建立一个循环遍历所有空格,然后除了空格号 2 和 10。例如使用伪代码:
> For Each Space in TextboxText
> If Not space nr = 2 or space nr = 10 Then
> replace space
> End if
> Next
解决方案
我会说像你一直在做的那样将它拆分成一个数组(大概使用split(strText)
然后通过数组运行以重新加入日期和时间。如下所示
For x = LBound(myArray) to Ubound(myArray)
'If IsDate(myArray(x)) Then - This didn't work as would erroneously return TRUE for decimals
If Format(Cdate(myArray(x)), "yyyy") <> "1899" Then
MyArray(x) = MyArray(x) & " " & MyArray(x+1) 'Join it to the value after
MyArray(x+1) = "" 'Delete the value after (time value)
End If
Next
然后,您此后对数组所做的任何事情都只需要包括例如If MyArray(x) <> ""
错过那些空值。
推荐阅读
- python - 从表格行中的列表中搜索文本,如果找到,则将其提取到新列中
- python - 如何在 Flask 中为与 HTML 一起工作的视频制作 URL?
- python - 等待命令作者的反应来编辑帮助分类页面
- javascript - 将 uint8array 传递给函数
- javascript - 受信任的 Web 应用程序中原生 android 和渐进式 Web 应用程序之间的两种方式的桥梁
- c++ - 我可以在父类中声明一个占位符变量,并在子类中以不同的类型声明它吗?
- android - 实时从后台线程向 UI 线程发送消息
- sql-server - 将 SQL Server 输出推送到 Azure Blob 存储
- sql - 写入数组plsql时出错如何解决?扩展也不起作用
- azure - 动态 CRM 网络挂钩