VBA 如何批量将单元格复制到另一个工作表中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VBA 如何批量将单元格复制到另一个工作表中相关的知识,希望对你有一定的参考价值。

急求!vba如何复制单元格?
想把A.xlsb中,G列13行及之后、H列13行及之后的单元复制到B.xlsm中。
现在可以把A文档打开,求教,怎么实现复制。

把你要保留的工作表的名字放到数组里,再把数组放到字典里,然后遍历工作表,判断工作表名是否在字典里存在,如果存在,把工作表移动到新工作簿里然后另存为

不想用字典和数组的话,也可以把工作表名列一列,用VBA调用countif函数判断

工作表移动到新工作簿里然后另存为的代码录制宏可以得到
给你个最实用的代码吧 用单元格已使用区域Copy到新的表中用下面代码要指明第左上解单元格要复制表的区域.Copy Destination:=接收复制表的左上角单元格如把SHEET1中的已使用区域复制到SHEET2中 以SHEET2的A1单元格为起来粘贴进
不用VBA就可以实现复制。

1、同时打开两个工作簿。

2、鼠标右键点击要移动的工作表,选择移动或复制。

3、在移动或复制工作表汇总,选择另一个工作簿。

4、选择移动到最后,然后勾选建立副本,点击确定。

5、点击确定后,就可以复制过去了。

参考vlookup公式的用法,图例是要对D2输入对应的数字,解释=VLOOKUP(A:A,H:K,2,0)的含义:

vlookup()接收4个参数,图中分别是A:A,H:K,2,0。A:A代表以第一列为要查找的值,H:K代表搜索的范围是H列到K列,2代表取出H:K列中的第二列(左起),因为D2这个单元格是要找采购总量,那么H:K列的第二列就是我们要的,所以是2,0是一个参数表示匹配的方法,完全匹配就用0。

那么E2,F2的公式就分别是=VLOOKUP(A:A,H:K,3,0)和=VLOOKUP(A:A,H:K,4,0),我们只要修改第三个参数就好了(可以看到找不到的品类是#N/A因为没有对应的结果)。

对于你的情况,不同页或者不同工作表,引用不如在同一页这么简单,前2个参数你可以手动选择,会自动填上,填好一个按逗号(英文半角)。

如果上面2个图,不在一个工作簿(也就是不是同一个excel文件),那么在公式计算完后,选择全部公式区域,复制,右键选择“值”粘帖以去除公式,但如此一来这些值就是静态的数值不会再改变。
参考技术A 给你个最实用的代码吧 用单元格已使用区域Copy到新的表中
用下面代码要指明第左上解单元格
要复制表的区域.Copy Destination:=接收复制表的左上角单元格

把SHEET1中的已使用区域复制到SHEET2中 以SHEET2的A1单元格为起来粘贴进SHEET2
Dim myRange1 As Range
Dim myRange2 As Range
Set myRange1 = Sheets1.UsedRange
Set myRange2 = Sheets2.Range("A1")
myRange1.Copy Destination:=myRange2

删除行得用循环 加 条件加行删除就OK了本回答被提问者和网友采纳
参考技术B 只能用vba了追问

是的,想请教怎么用vba实现。

是的,想请教怎么用vba实现。

vba excel怎么获取指定工作表的行数、列数

excel获取指定工作表的行数、列数的具体操作方法如下:

1.首先,打开Excel软件

2.打开源数据文件,假如需要根据证券代码显示出行业名称。现在,在I1单元格输入”证券代码“,在J1单元格输入”Nnindnme"。

3.如图,选中J2单元格,单击工具栏中的"插入函数“

4.弹出”插入函数“对话框,选择插入IF函数

5.在弹出的”函数参数“对话框中,设置Logical_test参数为”I2=“”,将Value_if_true设置为“”,在Value_if_false参数框中输入“VLOOKUP(I2,A2:B2846,2),然后点击确定

参考技术A 当前工作表总行数
k=activesheet.usedrange.rows.count

指定sheet1工作表总列数
j=sheets("sheet1").usedrange.columns.count

前提是顶部和左侧无空行空列
参考技术B vba 取行数
Sheets(1).[A65536].End(xlUp).Row '''该列最后一行
vba 取列数
Cells(14, 256).End(xlToLeft).Column'''该14行最后一列
参考技术C

Sub 列()

a = Columns("C:H").Count 'c:h的长度

b = Cells(1, Columns.Count).Address '列的最大值

c = Cells(1, Columns.Count).End(xlToLeft).Column '有效列(包含空值)

d = ActiveSheet.UsedRange.Columns.Count '有效列(包含空值)

f = Application.CountA(ActiveSheet.Range("1:1")) '有效列(到空值停止)

n = 12

g = Range(Chr(65 + n) & "1").Address '求第12列

End Sub

2.行

Sub 行()

a = Cells(Rows.Count, 1).Address '行的最大值

b = Cells(Rows.Count, 1).End(xlUp).Row  '有效行(包含空值)

c = ActiveSheet.UsedRange.Rows.Count '有效行(包含空值)

d = Application.CountA(ActiveSheet.Range("a:a")) '有效行(到空值停止)

End Sub

以上是关于VBA 如何批量将单元格复制到另一个工作表中的主要内容,如果未能解决你的问题,请参考以下文章

在 Excel 中将某些特定单元格从一个工作表复制到另一个工作表的 VBA 可能是啥?

需要 VBA 代码才能单击将内容从一个单元格移动到另一个单元格的按钮

Excel VBA 宏将复制一系列单元格并粘贴到另一个工作簿中

vba 指定工作簿,工作表,单元格

Excel VBA如何填充不同工作表中的值

VBA中如何引用另一工作表中的单元格区域