
Sub s()
For i = 2 To 12
a = Cells(5, i)Text
n = Len(a)
For j = 1 To n
b = Mid(a, j, 1)
If IsNumeric(b) Then c = c & b
Next
Next
With Sheet2
i = 11
Do While Cells(i, 4) <> ""
If i = 19 Then MsgBox "无位置": End
i = i + 1
Loop
Cells(i, 4)NumberFormatLocal = "@"
Cells(i, 4) = c
End With
End Sub
上面代码改为
Sub 合并()
Dim rng As Range, i As Long
For Each rng In Range("k9:k458")
i = i + 1
If i Mod 3 = 1 Then
rngResize(3, 1)Merge
End If
Next rng
End Sub
*** 作方法
直接用数据数据透视表功能可能实现这样的汇总,一般系统功能可以实现的不建议用VBA。要用VBA写代码也是可以实现的,只是稍微有点长,如果有兴趣可以研究,思路是使用两个数组,一是原表数据,一个是汇总后的新表数据,对原表扫描,把数据累加到新表中,关键代码示例如下:
Option Explicit
Sub 汇总()
Dim arr1, arr2, m, n, i1, i2, j, n2, x
arr1 = ActiveSheetUsedRange '提取原表数据
n = UBound(arr1)
m = UBound(arr1, 2)
ReDim arr2(1 To n, 1 To m) '定义新表
n2 = 0
For i1 = 1 To n
x = 0 '寻找i1行在新表中的位置
For i2 = 1 To n2
If arr2(i2, 1) = arr1(i1, 1) And arr2(i2, 2) = arr1(i1, 2) And arr2(i2, 3) = arr1(i1, 3) And arr2(i2, 4) = arr1(i1, 4) Then
x = i2
Exit For
End If
Next i2
If x = 0 Then '新行
n2 = n2 + 1
x = n2
For j = 1 To 4
arr2(x, j) = arr1(i1, j)
Next j
End If
For j = 5 To m
If VarType(arr1(i1, j)) = vbString Then
arr2(x, j) = arr2(x, j) & arr1(i1, j) '文本链接
Else
arr2(x, j) = arr2(x, j) + arr1(i1, j) '数值累加
End If
Next j
Next i1
'把汇总结果写入新文件
If n2 > 0 Then
WorkbooksAdd
Range("a1")Resize(n2, m) = arr2
End If
End Sub
以上就是关于EXCEL VBA合并各单元格内容全部的内容,包括:EXCEL VBA合并各单元格内容、vba合并单元格、vba 如何将一个已经动态生成的excel工作表里的某两个单元格进行判断,并给其他单元格进行合并等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)