如何把多张工作表内容快速复制到一张表完整Word文档下载推荐.docx
- 文档编号:13809891
- 上传时间:2022-10-13
- 格式:DOCX
- 页数:36
- 大小:1.39MB
如何把多张工作表内容快速复制到一张表完整Word文档下载推荐.docx
《如何把多张工作表内容快速复制到一张表完整Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《如何把多张工作表内容快速复制到一张表完整Word文档下载推荐.docx(36页珍藏版)》请在冰豆网上搜索。
使用with语句不仅可以简化程序代码,而且可以提高代码的运行效率。
With/endwith语句结构中以“.”开头的语句相当于引用了with语句中指定的对象。
当程序一旦进入with/endwith结构,with语句指定的对象就不能改变。
因此不能用with语句来设置多个不同的对象。
n=.[c65536].End(xlUp).Row'
求出c列最大行号。
求出某列最大行号的目的是确定有数据区域的最下边界,为此,选择求最大行号列时,选择的列数据最下边界要最大限度包含所有的数据。
End和Row都是属性,此语句取得属性值后赋值给变量n。
此程序事先没有对变量进行声明。
在程序中取得对象的属性的代码结构:
变量=对象·
属性。
.Range("
a2:
V"
&
n).CopyActiveSheet.[c65536].End(xlUp).Offset(1,-2)'
取a2开始到最后的数据copy到新表数据的下一行。
n=.[c65536].End(xlUp).Row得到C列最后一个非空单元格所在的行号,“.Offset(1,-2)”偏移“[c65536].End(xlUp)”得到单元格的位置开始复制后数据的粘贴位置。
由C列移到A列。
[c65536].End(xlUp):
求出C列最下边有数据的单元格,粘贴复制的数据时为了前面的数据不被后面粘贴上的数据覆盖,开始粘贴数据的位置在最下边有数据的单元格位置的基础上要用offset偏移。
EndWith
Next
EndSub’注:
在VISUALBASIC中要加入注释,直接在注释文字前加上’符号即可,在’符号之后的文字会被编译器忽略,也可以使用REM来进行注释,但使用’符号会更快捷一些,还可以节省内存及加快编译的效率。
以上代码粘贴位置、复制范围可以根据实际需要可变。
2021年5月用于林业旱灾调查一个工作簿上的所有工作表汇总到一张工作表的代码:
Subyy()'
声明过程名称为"
yy"
。
当要声明一个过程时,通常是以关键字"
SUB"
开头,并且以关键字"
END"
结束,在SUB关键字之前是用来指定此过程的作用域,例如public,static,或protected等。
=Sheets(Sheets.Count)'
参数值和参数名之间应该使用"
:
="
符号,而不是等号。
在代码中,属性和方法都是通过连接符"
."
来和对象连接的。
Fori=1ToSheets.Count-1'
WithSheets(i)'
with语句可以在一个单一对象或一个用户定义类型上执行一系列的语句。
With/endwith语句结构中以"
开头的语句相当于引用了with语句中指定的对象。
n=.[a65536].End(xlUp).Row'
分别求出最大行号。
End和Row都是属性,此语句取得属性值后赋值给变量n。
a3:
v"
&
n).CopyActiveSheet.[a65536].End(xlUp).Offset(1,0)'
n=.[c65536].End(xlUp).Row得到C列最后一个非空单元格所在的行号,"
.Offset(1,-2)"
偏移"
[c65536].End(xlUp)"
得到单元格的位置开始复制后数据的粘贴位置。
EndSub
注:
如果当前活动工作表的A列填写的是学生的姓名,现在我们想在表中A列最后一个学生的后面增加一个叫“张青”的学生,则代码为:
代码:
ActiveSheet.Cells([A65536].End(xlUp).Row+1,1).Value="
张青"
“[A65536].End(xlUp).Row”语句来返回A列的最后一个非空单元格的行号
Sheet1.range("
C1"
).End(xlDown).Row返回第一次遇到空单元格前的单元格的数量。
(注:
当C列有空白单元格时用:
myEndRow=sheets("
sheet1"
).range("
C65536"
).End(xlUp).row)
[a65536].End(xlUp)取得A列最后一个数据的位置
本示例选定包含单元格B4的区域中B列顶端的单元格。
Range("
B4"
).End(xlUp).Select
b65536"
).End(xlUp).Row问题
高手赐教其含义与区别
a65536"
).End(xlUp).RowRange("
d65536"
k65536"
).End(xlUp).Row
看一下vba中END的帮助就知道了。
End属性
参阅应用于示例特性返回一个Range对象,该对象代表包含源区域的区域尾端的单元格。
等同于按键End+向上键、End+向下键、End+向左键或End+向右键。
Range对象,只读。
expression.End(Direction)
expression必需。
该表达式返回“应用于”列表中的对象之一。
DirectionXlDirection类型,必需。
所要移动的方向。
XlDirection可为XlDirection常量之一。
xlDown
xlToRight
xlToLeft
xlUp
示例
本示例选定包含单元格B4的区域中第4行尾端的单元格。
).End(xlToRight).Select
本示例将选定区域从单元格B4延伸至第四行最后一个包含数据的单元格。
Worksheets("
Sheet1"
).Activate
Range("
).End(xlToRight)).Select
).End(xlUp).RowA列数据区域最后一行的行号
).End(xlUp).RowB列数据区域最后一行的行号
).End(xlUp).RowD列数据区域最后一行的行号
).End(xlUp).RowK列数据区域最后一行的行号
A列第65536行之上的最后有数据的单元格所在行数
回复
).End(xlUp).Row=B列最后一个非空单元格的行数
).End(xlUp).Row=A列最后一个非空单元格的行数
).End(xlUp).Row=D列最后一个非空单元格的行数
).End(xlUp).Row=K列最后一个非空单元格的行数
请教.end(xlUp).row的含义?
经常在VBA中常见如下代码:
DimRngAsInteger
Rng=sheets1.Range
代码详解
定义RNG作为一个整型变量
'
第二行的"
sheets1"
这种写法是错误的.正确的表述方法应为"
或"
sheets
(1)"
sheet1,对工作表对象的称呼;
range("
)指一个range对象,具体指第一列最后一行;
END,range对象的END属性,也返回一个对象,我理解为基于上述对象的延伸至最后一个RANGE对象.具体延伸的方向要看它给出的参数.比如xlToLeft、xlToRight、xlUp或xlDown。
ROW返回区域中第一块的第一行的行号。
Long类型,只读
多谢两位高手指点,看完以后我是这样理解的,不知对否?
A65536"
).End(xlUp).Row是指第一列最后一个有数据单元格的行数,它的下一行即加1就是3楼所说的要添加数据的空白单元格
汇总工作表数据
2021-06-0300:
44
方法一:
SubGetdata()
DimErowAsInteger,cAsVariant,SerowAsInteger
Erow=Sheets("
Total"
).[a65536].End(xlUp).Row+1
IfErow>
4ThenSheets("
).Rows("
4:
"
Erow).ClearContents
ForEachcInThisWorkbook.Sheets
Ifc.Name<
>
"
Then
Serow=c.[a65536].End(xlUp).Row
Erow=Sheets("
c.Range("
a4:
l"
Serow).CopyDestination:
=Sheets("
).Range(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 如何 工作 内容 快速 复制 一张 完整