vba 数组合并(excel vba数组赋值给合并的单元格)

本文目录
- excel vba数组赋值给合并的单元格
- vba 通过数组将 两列数据合并成一列 并显示出来
- 用VBA数组把三个工作表内容合并到总表 有两种合并
- 如何使用vba将多个相同表格汇总求和
- vba 两个数组合并
- VB如何将多个一维数组合并成一个一维数组或者二维数组
- VBA两个动态数组合并问题
- 求问vba将同一工作簿不同工作表的同一列,通过字典去重后合并为一个数组的方法
excel vba数组赋值给合并的单元格
arr = Range("a1:b4")
.Resize(4, 2) = arr试试以下代码
for i = 1 to 4
for k = 1 to 2
cells(k + 2)=arr(k, i * 2 - 1)
next k
next i
vba 通过数组将 两列数据合并成一列 并显示出来
用我下面的代码可以满足你的需求:
Option Explicit
Sub YgB()
Dim arr1, arr2
arr1 = Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp))
arr2 = Range(Cells(1, 2), Cells(Rows.Count, 2).End(xlUp))
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Resize(UBound(arr1), 1) = arr1
Cells(Rows.Count, 4).End(xlUp).Offset(1, 0).Resize(UBound(arr2), 1) = arr2
End Sub
第一步获得A、B列的内容到数组,原理和你的基本相同,区别是我使用Rows.count代替你的65536,可以确保在能支持100多万行的新版本下正确运行,另外我使用cells(1,1)代替range("a1")理论上速度好一点点。
第二步把数组存放在D列的下一个可用单元格,我是直接输出的,没有使用新的数组。
用VBA数组把三个工作表内容合并到总表 有两种合并
Sub s()
Dim sh As Worksheet
With Sheets("总表")
For Each sh In Sheets
If sh.Name 《》 "总表" Then
n = sh.Cells(Rows.Count, 1).End(3).Row
m = sh.Cells(n, 1).End(3).Row + 1
sh.Range(sh.Cells(m, 1), sh.Cells(n, 5)).Copy .Cells(Rows.Count, 1).End(3).Offset(1)
End If
Next
n = .Cells(Rows.Count, 1).End(3).Row ’本行开始排序
m = .Cells(n, 1).End(3).Row + 1
arr = .Range(.Cells(m, 1), .Cells(n, 5))
Do While k 《 4 ^ 10
k = 4 ^ 10
For i = 1 To UBound(arr)
If arr(i, 1) 《 k Then
k = arr(i, 1)
r = i
End If
Next
If k 《 4 ^ 10 Then
For i = 1 To 5
.Cells(m, i) = arr(r, i)
Next
m = m + 1
arr(r, 1) = 4 ^ 10
End If
Loop ’本行结束排序,删除排序代码即不排序
End With
End Sub
如何使用vba将多个相同表格汇总求和
这个问题可以使用字典和数组两种编程方式,字典的程序简单一点,数组运行效率更高一点点,但是逻辑稍微复杂一点,下面是数组的写法:
sub 宏1()
dim arr,arr2,n,i,j,k,t,i2
n=0’计算总行数
for each t in array("a","b","c")
n=n+sheets("汇总" & t).usedrange.rows.count
next t
redim arr(1 to n,1 to 4) ’结果数组
n=0’结果数组行数
for each t in array("a","b","c")
arr2=sheets("汇总" & t).usedrange
j=asc(t)-asc("a")+2’数据在结果表的列
k=8 ’数据在原始表的列
for i2=2 to ubound(arr2)
for i=1 to n
if arr(i,1)=arr2(i2,1) then exit for
next i
if arr(i,1)《》arr(i2,1) then
n=n+1
i=n
arr(i,1)=arr(i2,1)
end if
arr(i,j)=arr2(i2,k)
next i
next t
’保存结果
sheeta("汇总").range("a2").resize(n,4)=arr
end sub
vba 两个数组合并
Dim a, b, c(1 To 9)
a = Array(1, 2, 3)
b = Array(4, 5, 6)
n = 1
For i = 0 To 2
For j = 0 To 2
c(n) = a(i) & b(j)
n = n + 1
Next
Next
MsgBox Join(c, ",")
本回答由百度贴吧ninart吧友回答,
VB如何将多个一维数组合并成一个一维数组或者二维数组
不知道是哪里的恶心题目,你这里的a1,a2...没什么直接联系,所以要实现合并要写1000个循环代码!
1、定义
dim b1(1 to 1000,1 to 30)
第一行:
for i=1 to 30
b1(1,i)=a1(i)
next
复制上面的循环999次
2、定义
dim b2(1 to 30000)
第一行:
for i=1 to 30
b2(i)=a1(i)
next
第二行:
for i=1 to 30
b2(30+i)=a2(i)
next
复制上面的循环998次(稍作修改)
仅供参考,如果原始数据不是数组,建议从原始数据入手
VBA两个动态数组合并问题
自己写代码来实现吧 用for循环嵌套遍历2个数组所有元素 用if 判断外层数组元素 是否在内层数组里 有就清空内层里的对应序号的元素 循环完毕后 再次分别循环2数组元素 不为空的 就是唯一值了
求问vba将同一工作簿不同工作表的同一列,通过字典去重后合并为一个数组的方法
Sub 数据test()
Dim d As Object
Set d = CreateObject("scripting.dictionary")
Dim arr1(1 to 6), arr2,arrtest1(),arrtest2()
Set arr(1)= Sheets("铸件CASTING")
Set arr(2)= Sheets("机加配件")
Set arr(3)= Sheets("管件&外协配件")
Set arr(4)= Sheets("塑料件&标准件")
Set arr(5)= Sheets("进口件")
Set arr(6)= Sheets("包装物")
For i = 1 To 6
with arr(i)
for k=2 to ..End(3).Row ’我想把上面几个表的B列都合并到一个数组.
If .Cells(i, 2) 《》 "" Then
aa = .Cells(i, 2) & "|" & .Cells(i, 5)
d(aa) = ""
End If
Next
end with
next
arr2 = d.keys ’赋值为一维数组
redim arrtest1(0 to ubound(arr2))
redim arrtest2(0 to ubound(arr2))
for i=0 to ubound(arr2)
arrtest1(i)=split(arr2(i),"|")(0)
arrtest2(i)=split(arr2(i),"|")(1)
next
Set d = Nothing
End Sub
大概是这样~

更多文章:
js 数组map(js中以(_,1)做为传给map遍历函数的参数是什么意思)
2026年8月5日 21:00
background属性可以继承吗(CSS中的color\background-color有什么区别)
2025年11月29日 17:30
js jquery面试(jquery中怎么调用js方法调用)
2025年8月8日 03:45
evaluate带文字求值(Excel表格的单元格中有文字,以及多组数据,如何自动计算公式)
2026年2月26日 16:45
网页如何控制wordpress的侧栏显示内容?系统的数据处理的功能有哪些
2025年12月10日 12:30
perl读取文件(perl中怎么获取当前pl文件所在文件夹)
2026年1月17日 18:45
安装instantclient(instantclient-basic-win64-11.2.0.1.0怎么安装)
2025年10月11日 06:45
java中xml文件是干什么的(java开发,你在项目中哪些地方用到了XML)
2025年10月11日 01:00
divisional是什么意思(under one’s command是什么意思)
2025年9月8日 04:30
css游戏按钮(CSS一按WASD键就(CS起源游戏问题!!))
2026年6月29日 12:45
怎么看php是否加密(PHP如何判断RAR文件是否已经加密)
2026年8月30日 04:30
duplicate sample(酶标仪怎么设置三个重复样品)
2025年11月3日 14:45
window telnet服务打不开(如何开启telnet服务)
2025年10月27日 03:30
plc梯形图100实例详解pdf(红绿灯的plc程序和梯形图求)
2026年3月12日 01:15
shell递归遍历文件夹(shell脚本文件夹内文件依次执行)
2025年8月28日 06:30
seek doing(用seek doing造句 表示要求做)
2026年2月4日 13:15







