【问题标题】:Manipulate a textfile to add 2 in front of integers(remove unknown number of spaces) in excel vba在excel vba中操作文本文件以在整数前面添加2(删除​​未知数量的空格)
【发布时间】:2015-10-31 06:29:53
【问题描述】:

我有一个相当长的文件(479394 行),其中包含我试图与另一个模型结合的 FEM 模型的节点和元素编号。为此,我想在所有数字上加 2,以确保在组合这两个模型时拥有唯一的节点/元素编号。这应该是直截了当的,但是我不知道如何用数字 2 替换几个空格。它可以是 3 个空格,可能是 2 个,也可能是 5 个等等(删除未知数量的空格)。

Sub readTextFile()
strFileName = "Z:\Prosjekt\32637\FEM\RP_32637_PR_02_D\FEM\kim2.dat"
Open strFileName For Input As #1
dataArray = Split(input$(LOF(1), #1), vbLf)
Close #1

For Each element In dataArray

    If InStr(element, "CTETRA") Or _
        InStr(element, "PSOLID") Or _
        InStr(element, "CELAS1") Or _
        InStr(element, "         ") Or _
        InStr(element, "GRID") Then
        element = Replace(element, "remove unknown number of spaces", "2")
    End If
'write back to file
Next element

End Sub

这是我输入文件的剥离版本(129 行)的linkhere 是我想要实现的输出

【问题讨论】:

    标签: excel replace vba


    【解决方案1】:

    考虑下面的sn-p,它将字符串中的连续空格替换为“2”:

    With CreateObject("VBScript.RegExp")
        .Global = True
        .MultiLine = True
        .IgnoreCase = True
        .Pattern = " +"
        element = .Replace(element, "2")
    End With
    

    【讨论】:

    • 您可以阅读更多关于 RegEx 语法的信息。 G。 herehere.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多