首页 > 编程知识 正文

vba清除合并单元格内容,vba字符串定义

时间:2023-05-03 16:21:57 阅读:15134 作者:1827

在前几天共享的报道【高速比较数据】中,使用了以下代码。 一个孩子为什么还要在第20行代码中使用Trim函数呢? 构建字符串时可以直接处理吗? 本文介绍了在VBA中快速连接字符串的几种方法。

用一个简单的例子,提取1-10的偶数输出结果,判断偶数非常简单。 程序的大型机如下。

subdemo(dimIasinteger,msgasstringforI=1to10ifint ) I/2 )=(I/2 ) Then )构建字符串msg Next Debug.Print '偶数: ' msgEnd Sub

方法1 :最典型的教科书用法是subdemo1(dimIasinteger,msgasstringforI=1to10ifint(I/2 ) I/2 ) thenif len (msg )0then msg=cstttting

第五行代码确定msg变量是否为空,如果为空,则表示它是第一个偶数,第六行代码按原样分配值。 否则,第八行代码将在msg变量之后添加空格和偶数。

方法2 :输出时巧取

对于追求极致并希望尽可能减少代码行数的开发人员来说,将采用以下代码,将代码行数减少近一半: subdemo2(dimIasinteger,msgasstringforI=1to10ifint ) I/2 ) Then msg=msg ' ' CStr(i ) I ) Next Debug.Print

用第4行代码构建输出结果时,不再对第一个偶数进行特殊处理。 然后,生成的字符串为'2 4 6 8 10 ',第一个数字前面有额外的前导空格。 幸运的是,VBA提供了相应的函数以消除空格,并在第六行代码中使用Trim函数可以实现完美的输出。 效果与方法1完全相同。

方法3 )柔性万能法

看到这里的读者可能会怀疑,如果分隔符不是空格,该怎么办? VBA没有用于删除其他前导字符的函数,如果您编写自定义函数,将会有几个南辙。

其实这样的场景也很容易实现,例如将分隔符更改为逗号。 subdemo3(dimIasinteger,msgasstringforI=1to10ifint ) I/2 )=) I/2 ) Then msg=msg ',' CStr(i ) I ) next debug.PP

与方法2相比,区别仅在于第六行代码,使用Mid函数去除第一个字符(多余的逗号),并使其同样简洁。

方法4 :通用扩张法

如果在开发代码时未确定分隔符的数量,则在方法3中删除多余的第一个字符可能会出现问题。 如果进行简单的扩展,就会很适合这样的场景。 Sub Demo4) Dim i As Integer,msgasstringconststr _ deli='|fori=1to 10 if int (I/2 ) (I/2 ) thenmsg=msgstr_

第三行代码定义了用于模拟任意长度分隔符的分隔符常量。

在输出第七行代码时,Mid函数的第二个参数使用Len函数获取分隔符的长度,然后从下一位中提取字符串,即可获得正确的结果。

同样的问题,解决方法有很多种,条条道路通往罗马。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。