VBA|利用字符串拼接存储到字典中,在使用split分割实现数组数据存储字典

Dim d  As Object
Set d = CreateObject("scripting.dictionary")
Dim r as Integer
Dim arr
r = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("a1:o" & r)
'省略一些,理解思路即可,就是遍历
d(arr(i, 2)) = d(arr(i, 2)) & arr(i, 10) & ","

For Each k In d.Keys
    item = Left(d(k), Len(d(k)) - 1)
    '去掉最后一个逗号
    arr1 = Split(item, ",")
    '拆分,存入数组
    '也可以存入二位数组,需要redim
    '可以整列或整个表写入单元格,更快,单个写入耗时较长
Next

 

VBA语言可以利用数组来判断一个字符串是否为文。具体步骤如下: 1. 首先,我们需要明确文字符的Unicode编码范围。文字符的Unicode编码范围为4E00-9FA5。 2. 接下来,我们可以使用VBA的字符串函数Mid()来逐个检查字符串的字符。 3. 将待检查的字符串按字符拆分成一个数组,可以使用VBA的字符串函数Split(),将字符串拆分成一个字符数组。 4. 然后,使用For Each循环遍历数组的每个字符,并使用AscW()函数获取字符的Unicode编码。 5. 判断字符的Unicode编码是否在文字符的范围内,即判断Ascii编码是否大于等于19968(即Unicode编码的开始值)并且小于等于40869(即Unicode编码的结束值)。 6. 如果检测到任何一个字符不满足文字符的Unicode编码范围,则可以判断该字符串不是文字符串。 下面是一个例子,演示了如何在VBA利用数组判断字符串是否为文: ```vba Function IsChinese(ByVal str As String) As Boolean Dim arr() As String Dim i As Integer Dim charCode As Integer arr = Split(str, "") ' 将字符串按字符拆分成数组 For Each c In arr charCode = AscW(c) ' 获取字符的Unicode编码 If charCode < 19968 Or charCode > 40869 Then IsChinese = False ' 如果字符的Unicode编码不在文字符的范围内,则不是文字符串 Exit Function End If Next c IsChinese = True ' 所有字符都满足文字符的Unicode编码范围,是文字符串 End Function Sub TestIsChinese() Dim str1 As String Dim str2 As String str1 = "国" str2 = "Hello, World!" MsgBox str1 & " 是否为文字符串:" & IsChinese(str1) MsgBox str2 & " 是否为文字符串:" & IsChinese(str2) End Sub ``` 在上述例子,函数`IsChinese()`用于判断一个字符串是否为文字符串,返回True代表是文字符串,返回False代表不是文字符串。`TestIsChinese()`子过程用于测试`IsChinese()`函数的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值