将所有内容保留在Excel文件中的引号之间

肖恩·迪·里恩佐(Sean Di Rienzo)

我有一个包含一栏和一千行的Excel文件(xlsx)。

例子:

row A| oulzdwdwjdwojd=."A180202"wodwdojwdowj
row B| dwodjwodjwdowj-."N310302"wdwdwdwdwdw
row C| wdowduwoduwoduwdowudowudwoduwoduwdouw
row D| woduwoduwdowu-"N330201"

报价之间有很多垃圾与资产编号混在一起。除了引号中的内容,我需要删除所有内容。给我留下类似的东西

row A| A180202
row B| N310302
row C| N330201

我是VBS的完整入门者。我相信我可以编写一个程序用C ++或Java来执行此操作,但不知道如何使用Excel的VBScript完成此类任务。使用GUI中的Excel工具也获得了类似的结果,但没有任何东西可以满足我的需求。

我将如何在VBScript中执行类似的操作?我猜想我必须使用带有左,右或替换的定界符。

塞拉利昂奥斯卡

这将为您:

VBA

Sub SO()

Dim RE As Object, i As Long
Set RE = CreateObject("VBScript.RegExp")

With RE
    .Pattern = """.*"""
    .Global = True
    .IgnoreCase = True
End With

For i = 1 To Range("A" & Rows.Count).End(xlUp).Row
    If RE.Test(Cells(i, 1).Value) Then
        With Cells(i, 1)
            .Value = Replace(RE.Execute(.Value)(0), """", "")
        End With
    Else
        Cells(i, 1).ClearContents
    End If
Next

Range("A1:A" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeBlanks).EntireRow.Delete shift:=xlUp

End Sub

VBScript.RegExp只是一个正则表达式引擎,它允许您匹配字符串中的模式(如果您以前从未在C ++或Java中遇到过这种情况,我会感到惊讶)。您可以为此设置一个参考,但是为方便起见,我已经使用了后期绑定选项。

为了进行解释,代码循环了A列中的每个单元,并对其进行了RegEx测试。如果模式匹配,则用匹配项替换单元格的值-如果模式匹配,则清除单元格的内容。

最后,我们使用Excel的SpecialCells方法来识别A列中的任何空白单元格,同时删除它们所属的行。

如果它变得更容易,我想像中的Java循环可能看起来像这样:

for(var i = 0; i <= 1000; i++){
    if(RE.Test(Excel.Workbooks.ActiveWorkbook.Cells(i, 1).Value2)){
        // Blah blah....
    }
}

(如果您没有注意到,我不会写Java ...)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将某些列保留在pandas DataFrame中,删除其他所有内容

将某些列保留在pandas DataFrame中,删除其他所有内容

如何将所有JQuery保留在外部脚本文件中?

如何删除当前目录中的所有文件,但将文件保留在子文件夹中

Makefile:自动编译所有c文件,将.o文件保留在单独的文件夹中

如何删除所有文件/文件夹,但将根文件夹保留在C#中

jQuery map对象将所有内容保留在第二个数组中

将所有内容保留在Python中最后一个'/'的左侧

Python列表,将所有值保留在列表的所有子列表中

regex Python:“拉出”整个组,但将其他所有内容保留在String中

删除所有文件夹但将所有文件保留在一个文件夹中的程序/脚本

如何在iOS上的更新之间将大文件保留在缓存中?

将内容保留在Twitter Bootstrap面板中

将所有列保留在Pandas groupby之后

VBA Excel将文件导出为.csv,同时将数据保留在适当的列中

git:检出分支中的所有文件(但保留在当前分支中)

在DF中对数据进行分组,但将所有列保留在Python中

使用静态列表将所有线程保留在Java中

将所有索引保留在多级熊猫groupby中

Git :回到之前的主提交,将所有后提交保留在分支中

使用.NET MVC中的Response.Filter将所有JavaScript保留在页面底部

如何将所有中间属性变量保留在深度嵌套的结构中

将所有命令保留在bash历史记录中?

将所有元素保留在另一个列表中

通过将数据集中的所有变量保留在r中来计算均值

将方法添加的所有值保留在单独的变量中

如何使用flexbox将所有元素保留在容器中?

将特定值保留在数据框中并删除所有其他值

在图例中将所有中断保留在图例中