Vba Excel单元格解析
我有两列,每列大约有4000个数据单元。我需要以类似的方式格式化每个列 第1栏: 场景1:每个单元格都有以“qwe”开头的数据。如果“qwe”后面有一个“bc”,我需要删掉所有5个字符 场景2:每个单元格都有以“qwe”开头的数据。如果“qwe”后面没有“bc”,我只需要删除数据字符串的前3个字符(“qwe”)和最后一个字符。(这将是数据字符串长度的最后一个字符) 第2栏: 场景:我需要删掉每个单元格中每个字符串的前三个字符 对于第一列,我完全不知道如何检查第4个和第5个字符是否为“bc”,然后转移到相应的操作中 对于第二列,我只想调用MID(单元格,3,当前单元格中字符串的长度)。但是,我不知道如何从函数中调用单元格中数据的长度Vba Excel单元格解析,vba,excel,excel-formula,excel-2010,Vba,Excel,Excel Formula,Excel 2010,我有两列,每列大约有4000个数据单元。我需要以类似的方式格式化每个列 第1栏: 场景1:每个单元格都有以“qwe”开头的数据。如果“qwe”后面有一个“bc”,我需要删掉所有5个字符 场景2:每个单元格都有以“qwe”开头的数据。如果“qwe”后面没有“bc”,我只需要删除数据字符串的前3个字符(“qwe”)和最后一个字符。(这将是数据字符串长度的最后一个字符) 第2栏: 场景:我需要删掉每个单元格中每个字符串的前三个字符 对于第一列,我完全不知道如何检查第4个和第5个字符是否为“bc”,然后
感谢所有的帮助。我对VB宏一无所知,而且(显然)我只对Excel函数了解一点。假设Column1是a,Column2是B,请尝试:
=IF(AND(LEFT(A1,3)="qwe",MID(A1,4,2)="bc"),RIGHT(A1,3),RIGHT(A1,LEN(A1)-3))
及
复制下来以适应。假设您真的想使用VBA来完成此操作,而不是像pnuts这样的电子表格功能,建议: 可以使用VBA中的Application.WorksheetFunction调用工作表函数;然而,我不认为简单的字符串函数可以从那里获得;通常,您会发现跨行和跨列工作的更复杂的函数 尽管如此,BASIC还是有很多很好的字符串函数,如果您将单元格的值作为字符串获取,则可以直接使用这些函数进行字符串操作。这里有一个简单的例子
Set cell = ActiveSheet.Range("B2")
Dim val As String
Let val = cell.Value
Let part = Mid(val, 4, 2)
然后,如果愿意,可以将单元格值写回:
Let cell.Value = part
如果给定的长度参数比字符串长,MID函数将只返回字符串的余额。所以对于一些函数,只需要在那里放一个大数字,而不是计算它就可以了。我用了99,但是如果你的一些字符串更大,就把这个数字设置得足够大 对于第1列:
C1: =IF(LEFT(A1,5)="qwebc",MID(A1,6,99),MID(A1,4,LEN(A1)-4))
第2栏:
D1: =MID(B1,4,99)
填上
D1: =MID(B1,4,99)