给工作表的每行都附上工作表名作为新列 Sub test() Dim i As Integer Dim j As Integer Dim o As Integer i = Worksheets.Count For j = 1 To i 'o = Worksheets(j).UsedRange.Rows.Count Worksheets(j).Range("k3:k30") = Worksheets(j).Name Next End Sub 如何把多张工作表内容快速复制到一张表 我有一份教师工资表,一个工作簿里有好多张工作表的,现在我想把各工作表里的内容全部合到一张表中,除了用复制粘贴的方法外,请问还能有什么好的方法快速合到一起吗? (首选) Sub yy() ’声明过程名称为“yy”。当要声明一个过程时,通常是以关键字“SUB”开头,并且以关键字“END”结束,在SUB关键字之前是用来指定此过程的作用域,例如public,static, 或protected 等。在SUB关键字之后为过程最重要的三大部分:过程名称、参数以及在SUB和 END SUB之间的主体程序代码内容。过程是可以执行的语句序列单元,所有可执行的代码必须包含在某个过程中,任何过程都不能嵌套在其它过程中,过程的名称必须在模块级别进行定义。 Sheets.Add after:=Sheets(Sheets.Count)'新建一个工作表放在最后。参数值和参数名之间应该使用“:=”符号,而不是等号。在代码中,属性和方法都是通过连接符“.”来和对象连接的。Add是方法名,after是自变量,方法名与自变量之间用半角空格隔开。 For i = 1 To Sheets.Count - 1'从第一个工作表到倒数第二个工作表 With Sheets(i)’with语句可以在一个单一对象或一个用户定义类型上执行一系列的语句。使用with语句不仅可以简化程序代码,而且可以提高代码的运行效率。 With/end with语句结构中以“.”开头的语句相当于引用了with语句中指定的对象。当程序一旦进入with/end with结构,with语句指定的对象就不能改变。因此不能用with语句来设置多个不同的对象。 n = .[c65536].End(xlUp).Row'求出c列最大行号。求出某列最大行号的目的是确定有数据区域的最下边界,为此,选择求最大行号列时,选择的列数据最下边界要最大限度包含所有的数据。End和Row都是属性,此语句取得属性值后赋值给变量n。此程序事先没有对变量进行声明。在程序中取得对象的属性的代码结构:变量=对象·属性。 .Range("a2:V"&n).Copy ActiveSheet.[c65536].End(xlUp).Offset(1, -2)'取a2开始到最后的数据copy到新表数据的下一行。n =.[c65536].End(xlUp) .Row得到 C列最后一个非空单元格所在...