barriers / 阅读 / 详情

excel怎么快速合并多个工作表数据到一个工作表

2023-07-15 10:09:18
共2条回复
LocCloud
操作步骤:

1
原始数据所在工作簿包含多个格式相同的工作表,只不过每个工作表内容不同,比如说不同人名的工作表数据或者不同部门填写的数据。

在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。

按Alt+F11进入VBA代码编辑和调试界面。

根据下图提示,插入一个模块。

将下述代码粘贴到模块空白处:
Sub CombineSheetsCells()

Dim wsNewWorksheet As Worksheet
Dim cel As Range
Dim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As Variant
Dim TitleRow, TitleColumn As Range
Dim Num As Integer
Dim DataRows As Long
DataRows = 1
Dim TitleArr()
Dim Choice
Dim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$
Dim n, i
n = 1
i = 1
Application.DisplayAlerts = False
Worksheets("合并汇总表").Delete
Set wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count))
wsNewWorksheet.Name = "合并汇总表"

MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*")

If MyFileName = "False" Then
MsgBox "没有选择文件!请重新选择一个被合并文件!", vbInformation, "取消"

Else

Workbooks.Open Filename:=MyFileName

Num = ActiveWorkbook.Sheets.Count
MyName = ActiveWorkbook.Name
Set DataSource = Application.InputBox(prompt:="请选择要合并的数据区域:", Type:=8)
AddressAll = DataSource.Address
ActiveWorkbook.ActiveSheet.Range(AddressAll).Select

SourceDataRows = Selection.Rows.Count
SourceDataColumns = Selection.Columns.Count
Application.ScreenUpdating = False
Application.EnableEvents = False

For i = 1 To Num
ActiveWorkbook.Sheets(i).Activate
ActiveWorkbook.Sheets(i).Range(AddressAll).Select
Selection.Copy

ActiveSheetName = ActiveWorkbook.ActiveSheet.Name
Workbooks(ThisWorkbook.Name).Activate
ActiveWorkbook.Sheets("合并汇总表").Select

ActiveWorkbook.Sheets("合并汇总表").Range("A" & DataRows).Value = ActiveSheetName
ActiveWorkbook.Sheets("合并汇总表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).Select

Selection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

DataRows = DataRows + SourceDataRows

Workbooks(MyName).Activate

Next i

Application.ScreenUpdating = True

Application.EnableEvents = True

End If

Workbooks(MyName).Close
End Sub

在“首页”工作表中按下图示范插入一个窗体控件并指定宏为插入的代码名称。

点击“首页”工作表中插入的按钮,根据提示,浏览到原始数据工作簿。

下一步,用鼠标选择要合并的数据范围。
注意:每个工作表数据可能不一样,比如说有的是10行数据,有的是30行数据。在这里我们可以用鼠标选择任意工作表的一个较大范围,比如说A1:D100,保证比最多行数的工作表数据还多就可以,一会再删除空行。

点击确定按钮,待代码运行完毕后,所有的数据就都合并到了“合并汇总表”中。
注意:
1)A列的文本说明右侧的数据来自于原始数据表的哪个工作表;
2)数据之间会有一些空行,下面通过筛选删除。

选中全部数据区域,执行自动筛选。然后选择其中一个字段,选择“空白”和标题内容。

然后将筛选出来的无用行鼠标右键删除,再删除A列整列即可,完成效果如下图:
北有云溪
* 回复内容中包含的链接未经审核,可能存在风险,暂不予完整展示!
http://jingyan.b***.com/article/64d05a027d3c08de55f73b88.html

相关推荐

sheet怎么读

中文,市一特
2023-07-15 01:04:362

sheets中文意思

1.被单, 褥单, 床单2.薄板, 薄片
2023-07-15 01:06:314

sheets 香气可数?

sheets加了s肯定是复数,那么就是可数的。不过sheets的意思是【n.纸( sheet的名词复数 ); 被单; 一张(通常指标准尺寸的纸); 一大片(覆盖物)】The friction of the sheets against his skin was torture. 被单摩擦着他的皮肤,简直像是酷刑。
2023-07-15 01:06:491

在workbook,worksheet,sheets存在什么关系?

如图:
2023-07-15 01:06:583

worksheets 与sheets有什么区别

worksheets 与sheets区别:1、worksheets是指你当前非活动表,而sheets是当前活动表2、每个是Sheet是一个工作簿,各个sheet就构成了 sheets,也就是工作表了。如果你同时打开book1和book2,但你对book1进行操作的时候,book1所属的就可以写sheets,而book2就是worksheets。
2023-07-15 01:07:112

如何将EXCEL中所有sheets一起打印出来?

在打印设置里改成打印整个工作簿则可。1、以excel2010版本为例,如图打开要打印的文档后,点击页面左上角的“文件”,在弹出框里点击“打印”;2、在右边的打印设置里,点击“打印活动工作表”右边的倒三角图标;3、在弹出框里点击“打印整个工作簿”;4、最后点击页面上方的“打印”,则可将该EXCEL中所有sheets一起打印出来了。
2023-07-15 01:07:201

VBA关于sheets和worksheets类型的区别

Dim wss As WorksheetSet wss = Workbooks(2).Worksheets"worksheet是对像类型"worksheets是这一类型的集合
2023-07-15 01:07:272

vba里面 cell和cells sheet和sheets有什么区别

cells和sheets都是对象名.是保留字段.比如 cells(1,1) sheets(1)等sheet可以指属性但不是对象名,也可以自己定位为变量名.比如 workbooks.sheetcell什么都不是.最多用来定义为变量名.
2023-07-15 01:07:353

vba里面 cell和cells sheet和sheets有什么区别

cells和sheets都是对象名.是保留字段.比如 cells(1,1) sheets(1)等sheet可以指属性但不是对象名,也可以自己定位为变量名.比如 workbooks.sheetcell什么都不是.最多用来定义为变量名.
2023-07-15 01:07:543

Excel VBA Sheets选择问题

Private Sub CommandButton1_Click()Sheets("sheet1").Visible = not(Sheets("sheet1").Visible)Sheets("sheet2").Visible = not(Sheets("sheet2").Visible)End Sub
2023-07-15 01:08:301

EXCEL 怎样把十二个SHEETS 既资料归纳在一个表中

更新1: 1. 首先每个sheet都系以月为单位 sheet1 =JAN sheet2=FEB... A栏=单位 B栏=JAN C栏=FEB D栏=MAR 如这张SHEET 为FEB 即各单位在FEB都有缴付租金 B栏为缴付JAN 尚欠的租金 C为缴付本月 D为预缴付MAR 2. 每一张SHEET 都只打在当月有缴付租金的租客 3.由于想方便 每个SHEET的栏位名称定义都系一致的 更新2: 问:请问你是否想把 12 个 Sheets 相加后在 Sheet 13 (总表) 反映全年各租户合共收到的租金? 答:系. 我在第十三个SHEET 改名为该年各单位收租概要 A栏会系单位 B栏开始会系JAN - DEC的本年有缴交租金并按照月份自动落入相对的月份中(LINK 十二个月的SHEETS) 然后最右边一个TOTAL 数 更新3: 问:请问假设如只有三个不同的租户及单位 分别是 AAA (单位名称是 A1 AAA 是指租户) BBB (单位名称是 B1) CCC (单位名称是 C1) 他们的单位名称都是排列在 12 个 Sheets 的 Row 1 Row 2 及 Row 3 吗? 注: Sheet 1 改名为 Jan Sheet 2 改名为 Feb Sheet 3 .......Sheet 12 如此类推. 答:其实系当某住户有缴交租金才出现于当月中 没有缴交就无 更新4: 我excel 用2003 Ki 1. 请问您可否展示有关 Sheet 1 Sheet 2 之 Columns 及 Rows 的栏名 列名及资料的摆放位置作为举例吗? 如: 当月已付租金 预缴及已缴付之前月份的租金之摆放位置 2. Sheet 1 是否包括不同的租客 Sheet 2....... Sheet 12 都是各自包括不同的租客吗? 3. 12 个 Sheets 的 Columns 及 Rows 所摆放的栏及列名称的位置都是一致的吗? 详细及清楚的资料是有助各位网友高手为你更快解决问题. 谢谢您的回复. 2012-09-24 06:44:04 补充: Ki 请问假设如只有三个不同的租户及单位 分别是 AAA (单位名称是 A1 AAA 是指租户) BBB (单位名称是 B1) CCC (单位名称是 C1) 他们的单位名称都是排列在 12 个 Sheets 的 Row 1 Row 2 及 Row 3 吗? 注: Sheet 1 改名为 Jan Sheet 2 改名为 Feb Sheet 3 .......Sheet 12 如此类推. 2012-09-24 18:52:52 补充: Ki 请问你是否想把 12 个 Sheets 相加后在 Sheet 13 (总表) 反映全年各租户合共收到的租金? 谢谢您的回复. 2012-09-25 06:34:23 补充: Ki 关于你的问题 我在下午回复你 请问你用的是 Excel 2007/2010 or 其他 Version? 谢谢您的回复. 2012-09-25 22:55:04 补充: 以下是用 Excel 2010 处理: 请把 Sheet 1 2 3 4 5 改名为 Jan Feb Mar Apr Consolidate (即合并) 请于 Sheet 1 的 A2 A3 …… A6 分别输入名称: 单位 A11 B11 C11 Total B2 C2 D2 E2 F2 分别输入: Jan Feb Mar Apr Total B6 输入 =SUM(B3:B5) Copy B6 至 C6 D6 E6 F6 F3 输入 =SUM(B3:E3) 拉下 F3 至 F5 Highligh A2:F6 然后按 Mouse 右掣 选 Copy 点选 ‘Feb" 工作页之 A2 再按 Mouse 右掣 选贴上. ‘Mar" ‘Apr" ‘Consolidate" 工作页是重复前述 ‘Feb" 之点选做法 结果 5 个工作页的格式是相同的. 于 ‘Jan" 工作页之 B1 C1 D1 E1 F1 输入: 本月应缴 预缴 预缴 预缴 合共; 于 ‘Feb" 工作页之 B1 C1 D1 E1 F1 输入: 尚欠租金 本月应缴 预缴 预缴 合共; 于 ‘Mar" 工作页之 B1 C1 D1 E1 F1 输入: 尚欠租金 尚欠租金 本月应缴 预缴 合共; 于 ‘Apr" 工作页之 B1 C1 D1 E1 F1 输入: 尚欠租金 尚欠租金 尚欠租金 本月应缴 合共; ‘Consolidate" 工作页之 B1 C1 D1 E1 F1 同是输入合共. ‘Jan" 工作页: B3 至 B5 输入 100 0 0 于 B6 输入 =sum(B3:B5); C3 至 C5 输入 0 0 0; D3 至 D5输入 0 0 0; E3 至 E5 输入 0 0 0; F3 输入 =sum(B3:E3) 并 copy 至 F4 F5; B6 输入 =sum(B3:B5) 并 copy 至 C6 D6 E6 F6. ‘Feb" 工作页: B3 至 B5 输入 0 200 0; C3 至 C5 输入 100 200 0; D3 至 D5输入 150 200 0; E3 至 E5 输入 0 0 0; F 栏(Column) 及第 6 列(Row) 之公式与 ‘Jan" 工作页相同. ‘Mar" 工作页 B3 至 B5 输入 0 0 300; C3 至 C5 输入 0 0 0; D3 至 D5输入 0 0 0; E3 至 E5 输入 150 0 0; F 栏(Column) 及第 6 列(Row) 之公式与 ‘Jan" 工作页相同. Apr" 工作页: B3 至 B5 输入 0 0 0; C3 至 C5 输入 0 0 300; D3 至 D5输入 0 0 300; E3 至 E5 输入 0 0 0; F 栏(Column) 及第 6 列(Row) 之公式与 ‘Jan" 工作页相同. 请把 ‘Jan" 至 ‘Apr" 之 4 个工作页的 ‘本月应缴" 栏用颜色 Highlight. 点选 ‘Consolidate" 工作页之B3 点选上面 Menu Bar 之 Data > Consolidate 出现小视窗 Highlight ‘Jan" 工作页之 B3:F6 小视窗之 Reference: 下面出现 Jan!$B$3:$F$6 再按右旁的 Add 格内出范围 再点选 ‘Feb" 工作页 已自动 highlight B3:F6 按小视窗右旁的 Add ‘Mar" ‘Apr" 工作页之做法与前述相同 唯在 ‘Apr" 工作页里需要另点选左方之 Left column 再按 OK ‘合并" 工作页即展示 1-4 月份工作页相加后的数据结果. 2012-09-25 23:23:22 补充: Ki 我还记得 Excel 在未升级至 2007 前 我曾试过用较低 Verion 的 Excel 做过的 请你尝试在 Excel 2003 内搜寻类似 2010 我提及过的功能 我知道他们的做法是相同的 我肯定你一定是可以做得到的. 2012-09-26 06:28:59 补充: Ki 如加入 ‘May" 至 ‘Nov" 的工作页是如同 ‘Jan" 至 ‘Mar" 工作页的做法 ‘Apr" 工作页里需要另点选左方之 Left column 再按 OK 之做法则改在 ‘Dec" 工作页处理 这时‘Apr" 工作页的做法是与 ‘Jan" 的相同. 2012-09-26 15:08:17 补充: Ki 请问我这个做法 是你所需要的答案吗? 2012-09-30 14:45:02 补充: Ki 有关你的问题 因我不太明白 我尝试找另一位网友高手协助你解决 你可否把你的 sample file 直接电邮给该位网友高手吗? 因为这里的篇幅是有限的. 因还有 3 天的时间 请问你可否延长到期的时间? 谢谢您尽快的回复. 2012-10-01 21:02:10 补充: Ki 请打开你的电邮邮箱 (知识+) 并希望你参看内容后尽快回复之. 谢谢您的帮忙! 2012-10-02 15:15:43 补充: Ki 回答区的末段有错 以致不能于更新数据后 在 Sheet 13 展示正确答案 修改如下: 点 选 ‘Consolidate" 工作页之 A2 点选上面 Menu Bar 之 Data > Consolidate 出现小视窗 Highlight ‘Jan" 工作页之 A2:F6 小视窗之 Reference: 下面出现 Jan!$A$2:$F$6 再按右旁的 Add 格内出范围 再点选 ‘Feb" 工作页 已自动 highlight A2:F6 按小视窗右旁的 Add ‘Mar" ‘Apr" 工作页之做法与前述相同 2012-10-02 15:24:19 补充: 续上段: 唯在 ‘Apr" 工作页里需要另点选左方之 Top Row Left column Create Links to source data 再按 OK ‘合并" 工作页即展示 1-4 月份工作页相加后的数据结果. 请留意如属 Excel 2003 各工作页的单位名称必须放在同一行上 并且是对应同名的 各工作页的月份是放在同栏及对应的 否则合并后会出现错误的数据. 2012-10-02 15:32:18 补充: Ki 1. 请问你可否尝试以上经修改后的合并做法 然后在这里回复我? 谢谢您. 2. 我希望你尝试用 Excel 2007/2010 把各工作页的单位名称不放在对应的同列上 以比较 Excel 2003 合并功能的分别 以改善现时复杂的合并工作. 谢谢您的回复. 2012-10-02 17:37:01 补充: 汉钟离: 我又再次谢谢您的帮助! 2012-10-02 18:22:39 补充: Ki 请问你的问题是否已完全被解决了? 如果仍未被解决 你可以再提出发问的. 谢谢您尽快的回复. 假如在1月份预付3月份租金 算那一个月 或在3月份才付1月份租金 又算那1个月呢? 如在1月份付了全年租金 第13个表是分在1-12个月 还是全部都是当1月份呢? 是否所有表都不会列明每个单位的每月租金呢? 2012-10-01 14:40:40 补充: 回复意见相当清楚 与我之前的理解几乎完全相同 既然每表都有12个月的栏位 亦不须要去link每月租金了 由于要参照列位的单位 已是二维 再加上跨多表 便是三维 没有太多公式办法去应付跨多表的三维计算(很多公式是有8重限制) 可能要借用工作表的针对式设计 或辅助格 或含复杂公式的定义名称(此法相当复杂及要相当高程度) 最简单可能是用VBA 2012-10-01 14:43:29 补充: 容我想一天 如没有较佳办法 则祇可以提供VBA办法 2012-10-01 23:46:41 补充: FunP.Net/652588 请参考以上条link的附件 是将公式放在定义名称 按Ctrl + F3两键 可看到定义名称的内容 可以用Excel VBA来解决 之前读完个课程 课程有教到Excel VBA实用技巧 我觉得导师教得几好 有免费试睇 由基础到进阶都有 详细可以参考Excel VBA 程式编写基础班 systematic/vba thank you for your wer 但系我其实系想要将12个月既sheets 中揾个答案在第13个sheet 中显示出来 个答案要有可能sum出黎因为条公式太长>>>>=sumproduct((jan!a4:a100=sheet13!a4)*(jan!d4:d100)+(feb!a4:a100=sheet13!a5)+........(dec!a4:a100=sheet13!a15) 2012-10-01 01:49:09 补充: 可以延长发问 但你可能混淆左某样野 因为每一个月所记录的都系租客有俾过钱的,且只按日子顺序记录,单位排列并不是,而有些租客可能在某个月份无支付租金或在某个月份一次过支付全年或某几个月份租金 而在第十三个表中就会显示所有租客(eg A1:A100)及月份(egB2:M2) 我要既公式系要将每一个月(即系全年十二个月既支付租金既情况) 睇下有边个月未付或俾多俾少 好样跟进. 2012-10-01 01:54:40 补充: 补充: 1) 公式尽量简短 2)公式语法可以系十二个月既简法显示 3)每一个月既储存格位置名称都系一致的 2012-10-01 12:58:38 补充: 1月份预支3月份当然系3月份 3月份付1月份租金当然1月份 1月付全年租当然系付十二个月租金 系会有列明每个单位每月租金的 当月(eg.4月)付之前或之后的租金,在当月的该张SHEET (eg 4月) 在里面会有十二个月既格(eg B2:M2),会分开租客实际付哪一个月,eg 4月缴费其实付5月既租金... 2012-10-01 13:09:48 补充: 是否所有表都不会列明每个单位的每月租金呢? 其实有的 放在一个的sheet但因为唔想再link算吧 我会在第十三个表中做运算是否收多或收少的情况出现 (因为我用sumproduct 时公式太长所致) 想睇下仲有无其它简单的方法 2012-10-02 02:38:52 补充: 汉钟离: 已完成 谢谢你的答案 2012-10-02 02:39:28 补充: Sky: 谢谢你的回复~
2023-07-15 01:08:371

Excel方法“move”作用于对象“sheets”失败怎么解决啊?

ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
2023-07-15 01:08:463

如何将excel多个sheet

首先我们要有自己的excel数据,并且我们需要的是microsoft excel,WPS没有这些负责的功能。比如我下面举例的,我自己有205页的数据需要合并,如图所示。请点击输入图片描述看到这么多数据页要合并,如果是复制粘贴的话,工作量就很大了。我们现在开始合并,首先要在最前页新建一个工作表。如图:请点击输入图片描述在新建的sheet表中“右键”,找到“查看代码”,然后看到宏计算界面。如图所示:请点击输入图片描述请点击输入图片描述看到宏计算界面,我们就只需要把下面的代码复制进去,代码如下,效果如下:Sub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j).Name <> ActiveSheet.Name ThenX = Range("A65536").End(xlUp).Row + 1Sheets(j).UsedRange.Copy Cells(X, 1)End IfNextRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"End Sub请点击输入图片描述做完上面的事情,然后只需要点击工具栏上面的“运行”下的“运行子过程/用户窗体”就可以了,合并完之后会有提示。提示完成之后就可以把宏计算界面关闭了。如图所示:请点击输入图片描述合并后的效果如下图,我们看到的是合并之后有8000多行,就是205页合并后的结果。谢谢。如有疑问,请留言。请点击输入图片描述请点击输入图片描述
2023-07-15 01:08:551

excel vba sheets如何用变量工作表

可以用一个变量curmonth来表示当前月份,则选择上个月的表格打开就可以写成:sheets((curmonth-1)&"月").select变量(或表达式)与其他字符(串)之间用&进行连接。
2023-07-15 01:09:492

excel中怎么将多个sheet合成一个

是合计汇总,还是追加数据?
2023-07-15 01:09:597

如何将一个EXCEL中的多个SHEET中内容合并到一个SHEET中

亲,请新建一个Sheet,命名为“汇总”(名字可以随便改)。然后按“Alt+F11”打开VBA编辑窗口,在左侧对应的Sheet“汇总”上双击,右侧空白处粘贴下面的代码。关闭VBA窗口。然后按“Alt+F8”打开宏窗口,选择刚插入的宏,点击“执行”。 1234567891011121314151617Sub hz() Dim bt, i, r, c, n, first As Long bt = 1 "表头有几行,这里的1就改成几 Cells.Clear For i = 1 To Sheets.Count If Sheets(i).Name <> ActiveSheet.Name Then If first = 0 Then c = Sheets(i).Cells(1, Columns.Count).End(xlToLeft).Column Sheets(i).Range("A1").Resize(bt, c).Copy Range("A1") n = bt + 1: first = 1 End If r = Sheets(i).Cells(Rows.Count, "A").End(xlUp).Row Sheets(i).Range("A" & bt + 1).Resize(r - 1, c).Copy Range("A" & n) n = n + r - bt End If Next End Sub
2023-07-15 01:10:561

在EXCEL运行宏时出现错误,Sheets("明细").Copy Before:=Sheets(3)

原因可能有两个:1.这个工作簿里没有3个工作表(只有1个或者2个),所以Sheets(3)报错;2.这个工作簿里没有“明细”这个工作表。估计是第一个错误。如果你希望把“明细”新复制一个,位置在最后一个表格前面,把代码改为Sheets("明细").copybefore:=Sheets(sheets.count)
2023-07-15 01:11:051

wps表中sheets2,sheets3打不开

你遇到了和我一样的问题,大部分的原因都是因为WPS自动升级更新后出现的故障现象,解决办法有两个,少部分人可以通过简单的调试 就能恢复正常:点击 表格的左上角,在选择 “选项”,在 视图 里边找到“工作表标签”,要选中它,确定保存后退出,然后关闭WPS,再打开这个文件试试。如果还不行,再试试这个,在WPS表格 - “开发工具”-“COM加载项”中取消 officeTab.TabsforExcel(Excel Teb)插件 试试。假如这个办法也不行,那么就只有最后一个方法了,卸载WPS,然后重新安装之前下载的那个版本的 WPS,然后在桌面“开始”中 找到WPS的文件夹,点击“ 配置工具” - “高级” - 在 升级设置 里边,把自动更新 给取消了,最后 确定 保存 就行了。我重装的是 WPS Office 2013抢鲜版 9.1.0.4047 这个版本的,现在用的好好的,百度一下就能找到这个版本的WPS了。您千万别下载最新版的WPS,那个效果跟您现在是一样的。.在此,谢谢其他网友的信息帮助。
2023-07-15 01:11:141

excel vba如果找不到Sheets页就创建并跳转

Sub tx()Dim x As IntegerFor x = 1 To Sheets.CountIf Sheets(x).Name = "aa" ThenMsgBox ("aa表已存在")EndEnd IfNext xSheets.Add After:=Sheets(Sheets.Count)Sheets(Sheets.Count).SelectSheets(Sheets.Count).Name = "aa"End Sub
2023-07-15 01:11:362

VB 操作EXCEL的SHEETS问题

1、thisworkbook.sheets(1)第一个sheet2、 WorkBook1.Application.DisplayStatusBar = True
2023-07-15 01:12:032

vba 遍历sheets的问题

默认Variant , 不确定什么对象 就用 Object
2023-07-15 01:12:123

怎么拆分一个excel工作簿中的多个工作表

可以利用VBA实现,Alt+F11,复制如下代码,F5执行即可:Sub 拆分到工作簿()Dim wk As Workbook, ss$, k%Application.DisplayAlerts = FalseFor Each sht In ThisWorkbook.SheetsSet wk = Workbooks.Addk = k + 1ThisWorkbook.Sheets(k).Copy Workbooks(2).Sheets(1)ss = ThisWorkbook.Path & "" & sht.Name & ".xlsx"wk.SaveAs sswk.CloseNextApplication.DisplayAlerts = TrueMsgBox "拆分工作簿完成!"End Sub
2023-07-15 01:12:222

Excel ActiveWorkbook.Sheets.Active这句怎么不对了

好久没编程了sheets有active方法吗?还是你想写属性?
2023-07-15 01:12:374

如何从Excel导出sheet表单

按下atl+f11,菜单:插入-模块,复制下面代码,然后按f5运行。会在最前面加张总表,显示工作表名称。subaaa()sheets.addbefore:=sheets(1)forx=2tosheets.countcells(x-1,1)=sheets(x).namenextendsub
2023-07-15 01:12:461

如何在Windows或Mac上添加Google Sheets标题

1、在网页浏览器中前往https://sheets.google.com2、单击要编辑的电子表格。3、在表格中插入空白行。4、在标题栏中输入标题。5、单击标题栏左边的行号。6、单击查看7、单击冻结8、单击1行本指南介绍如在电脑上添加Google Sheets电子表格的列标题。1、在网页浏览器中前往https://sheets.google.com。如果尚未登录Google帐户,先登录。2、单击要编辑的电子表格。要创建新表格,单击列表左上角的"空白"。3、在表格中插入空白行。如果已新建表格或已有标题栏,可略过此步骤。如果没有,按以下步骤在表格顶部添加新行。单击表格第一行左边的行号,以选中此行。单击插入菜单。单击在上方插入1行。表格顶部会出现空白行。4、在标题栏中输入标题。如果已添加列名或标题,可略过此步骤。如果没有,在列表顶部的空白单元格中输入每个列的标题。5、单击标题栏左边的行号。随后会选中此行。6、单击查看菜单。7、单击冻结。8、单击1行。随后会冻结标题栏,这样即使向下滚动表格标题也不会移动。要启用通过列标题排序和筛选数据的功能,单击标题栏的行号,单击数据菜单,然后选择过滤视图。这样就可以单击每个标题旁的绿色图标对数据进行排序。
2023-07-15 01:13:421

sheets中文意思

释义 n.[材] 片材,板片(sheet复数);[纺] 被单 v.覆盖(sheet的第三人称单数形式);使成大片;铺床单 n.(Sheets)人名;(英)希茨
2023-07-15 01:14:011

如何将EXCEL中所有sheets一起打印出来?

打印时不要选打印当前工作表,要选择打印整个工作薄
2023-07-15 01:14:118

excel中,怎么给sheet取名呢?

打开开发工具,VBA代码界面:第一种方式:sheets("工作表名字").name ="你想要的名字"第二种方式:sheet1.name = "你想要的名字"Sub test()Sheets("Sheet1").Name = "我的工作表"Sheet1.Name = "我想要的工作表"End Sub
2023-07-15 01:15:261

复印纸上的500sheets什么意思_

sheets是张数的意思
2023-07-15 01:15:392

请问这句话是什么意思:i = Val(Sheets(Sheets.Count).Name)

这是统计当前工作簿中工作表数目前赋值给 i 用的
2023-07-15 01:15:552

excl表格怎么显示sheet内容

问题叙述不是很清楚,是要显示所有sheet的名称吗?可以用函数,请如下步骤操作:按Ctrl+F3,定义一个名称,比如说名称为“Sheets”,[参照到]输入下面的公式:=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),)&T(NOW())按确定后,在A1单元格输入下面的公式,下拉即可:=IFERROR(INDEX(Sheets,1,ROW(A1)),"")
2023-07-15 01:16:131

excel中vba,sheets("文件")是第几个工作表,是sheets(n)中的n是几?

Sub aaa()For n = 1 To ThisWorkbook.Sheets.CountIf Sheets(n).Name = "文件" Then Exit ForNextMsgBox "工作表“文件”的编号n是" & nEnd Sub
2023-07-15 01:17:241

怎样把多个excel表合并成多个sheet

使用方法:1、新建一个工作薄,将其命名为你合并后的名字。2、打开此工作薄。3、在其下任一个工作表标签上点击右键,选择“查看代码”。4、在打开的VBA编辑窗口中粘贴以下代码:Sub 工作薄间工作表合并()Dim FileOpenDim X As IntegerApplication.ScreenUpdating = FalseFileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="合并工作薄")X = 1While X <= UBound(FileOpen)Workbooks.Open Filename:=FileOpen(X)Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)X = X + 1WendExitHandler:Application.ScreenUpdating = TrueExit Suberrhadler:MsgBox Err.DescriptionEnd Sub5、关闭VBA编辑窗口。6、在excel中,工具---宏---宏,选“工作薄间工作表合并”,然后“执行”。7、在打开的对话窗口中,选择你要合并的300个工作薄。
2023-07-15 01:17:502

S h e e t是中文指什么?

床单,纸张
2023-07-15 01:18:004

如何把excel好多sheet合并在一个上面

仅仅吧其工作表内容复制工作表面利用宏便发邮箱
2023-07-15 01:18:092

大神,多个excel的sheet页合并成一个excel(只有一个sheet页)应该怎么弄?

用宏Sub合并()Application.ScreenUpdating=FalseDimmAsIntegerDimnAsIntegerDimoAsIntegerForm=2To3"此处的2、3需要根据你实际的工作表数填写 n=Sheets(m).[a65536].End(xlUp).Row o=Sheets(1).[a65536].End(xlUp).Row Sheets(m).Select Range("a1","z"&n).Select Range("a"&n).Activate Selection.Copy Sheets(1).Select Range("a"&o+1).Select ActiveSheet.PasteNextApplication.ScreenUpdating=Trueyn=MsgBox("所选工作表已合并完成!",vbOKOnly,"工作表合并")EndSub这个代码有缺陷,小心使用
2023-07-15 01:18:171

如何将excel中的多个sheet合并成一个

方法/步骤首先我们要有自己的excel数据,并且我们需要的是microsoft excel,WPS没有这些负责的功能。比如我下面举例的,我自己有205页的数据需要合并,看到这么多数据页要合并,如果是复制粘贴的话,工作量就很大了。我们现在开始合并,首先要在最前页新建一个工作表。在新建的sheet表中“右键”,找到“查看代码”,然后看到宏计算界面。看到宏计算界面,我们就只需要把下面的代码复制进去,代码如下,效果如下:Sub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j).Name <> ActiveSheet.Name ThenX = Range("A65536").End(xlUp).Row + 1Sheets(j).UsedRange.Copy Cells(X, 1)End IfNextRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"End Sub做完上面的事情,然后只需要点击工具栏上面的“运行”下的“运行子过程/用户窗体”就可以了,合并完之后会有提示。提示完成之后就可以把宏计算界面关闭了。6合并后的效果如下图,我们看到的是合并之后有8000多行,就是205页合并后的结果。谢谢。如有疑问,请留言。
2023-07-15 01:18:383

过程很简单 sheets(“sheet1“).range(a1)=sheets(“sheet2“)

for i=1 to 9 sheets("sheet1").range("a" & i)=sheets("sheet2").range("a" & i)next i
2023-07-15 01:18:571

怎样把excel表上的多个sheet汇总

透视汇总还是追加数据呀?
2023-07-15 01:19:062

如何把excel里面所有的sheet合并到一个

首先我们要有自己的excel数据,并且我们需要的是microsoft excel,WPS没有这些负责的功能。比如我下面举例的,我自己有205页的数据需要合并,如图所示。看到这么多数据页要合并,如果是复制粘贴的话,工作量就很大了。我们现在开始合并,首先要在最前页新建一个工作表。如图:在新建的sheet表中“右键”,找到“查看代码”,然后看到宏计算界面。如图所示:看到宏计算界面,我们就只需要把下面的代码复制进去,代码如下,效果如下:Sub 合并当前工作簿下的所有工作表()Application.ScreenUpdating = FalseFor j = 1 To Sheets.CountIf Sheets(j).Name <> ActiveSheet.Name ThenX = Range("A65536").End(xlUp).Row + 1Sheets(j).UsedRange.Copy Cells(X, 1)End IfNextRange("B1").SelectApplication.ScreenUpdating = TrueMsgBox "当前工作簿下的全部工作表已经合并完毕!", vbInformation, "提示"End Sub做完上面的事情,然后只需要点击工具栏上面的“运行”下的“运行子过程/用户窗体”就可以了,合并完之后会有提示。提示完成之后就可以把宏计算界面关闭了。如图所示:66
2023-07-15 01:19:142

Excel把一个工作表拆分成多个工作表

这个可以用宏来做
2023-07-15 01:19:343

execl中如何把第一个表的内容汇总到第二个表

原始数据所在工作簿包含多个格式相同的工作表,只不过每个工作表内容不同,比如说不同人名的工作表数据或者不同部门填写的数据。在原始数据同目录下新建一个工作簿,建立两个工作表,名称分别为“首页”和“合并汇总表”。按Alt+F11进入VBA代码编辑和调试界面。根据下图提示,插入一个模块。将下述代码粘贴到模块空白处:Sub CombineSheetsCells()Dim wsNewWorksheet As WorksheetDim cel As RangeDim DataSource, RowTitle, ColumnTitle, SourceDataRows, SourceDataColumns As VariantDim TitleRow, TitleColumn As RangeDim Num As IntegerDim DataRows As LongDataRows = 1Dim TitleArr()Dim ChoiceDim MyName$, MyFileName$, ActiveSheetName$, AddressAll$, AddressRow$, AddressColumn$, FileDir$, DataSheet$, myDelimiter$Dim n, in = 1i = 1Application.DisplayAlerts = FalseWorksheets("合并汇总表").DeleteSet wsNewWorksheet = Worksheets.Add(, after:=Worksheets(Worksheets.Count))wsNewWorksheet.Name = "合并汇总表"MyFileName = Application.GetOpenFilename("Excel工作薄 (*.xls*),*.xls*")If MyFileName = "False" ThenMsgBox "没有选择文件!请重新选择一个被合并文件!", vbInformation, "取消"ElseWorkbooks.Open Filename:=MyFileNameNum = ActiveWorkbook.Sheets.CountMyName = ActiveWorkbook.NameSet DataSource = Application.InputBox(prompt:="请选择要合并的数据区域:", Type:=8)AddressAll = DataSource.AddressActiveWorkbook.ActiveSheet.Range(AddressAll).SelectSourceDataRows = Selection.Rows.CountSourceDataColumns = Selection.Columns.CountApplication.ScreenUpdating = FalseApplication.EnableEvents = FalseFor i = 1 To NumActiveWorkbook.Sheets(i).ActivateActiveWorkbook.Sheets(i).Range(AddressAll).SelectSelection.CopyActiveSheetName = ActiveWorkbook.ActiveSheet.NameWorkbooks(ThisWorkbook.Name).ActivateActiveWorkbook.Sheets("合并汇总表").SelectActiveWorkbook.Sheets("合并汇总表").Range("A" & DataRows).Value = ActiveSheetNameActiveWorkbook.Sheets("合并汇总表").Range(Cells(DataRows, 2), Cells(DataRows, 2)).SelectSelection.PasteSpecial Paste:=xlPasteColumnWidths, Operation:=xlNone, _SkipBlanks:=False, Transpose:=FalseSelection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _False, Transpose:=FalseSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseDataRows = DataRows + SourceDataRowsWorkbooks(MyName).ActivateNext iApplication.ScreenUpdating = TrueApplication.EnableEvents = TrueEnd IfWorkbooks(MyName).CloseEnd Sub在“首页”工作表中按下图示范插入一个窗体控件并指定宏为插入的代码名称。点击“首页”工作表中插入的按钮,根据提示,浏览到原始数据工作簿。下一步,用鼠标选择要合并的数据范围。注意:每个工作表数据可能不一样,比如说有的是10行数据,有的是30行数据。在这里我们可以用鼠标选择任意工作表的一个较大范围,比如说A1:D100,保证比最多行数的工作表数据还多就可以,一会再删除空行。点击确定按钮,待代码运行完毕后,所有的数据就都合并到了“合并汇总表”中。注意:1)A列的文本说明右侧的数据来自于原始数据表的哪个工作表;2)数据之间会有一些空行,下面通过筛选删除。选中全部数据区域,执行自动筛选。然后选择其中一个字段,选择“空白”和标题内容。然后将筛选出来的无用行鼠标右键删除,再删除A列整列即可,完成效果如下图:参考来源:http://jingyan.baidu.com/article/64d05a027d3c08de55f73b88.html
2023-07-15 01:20:451

EXCEL 声明变量Set SH = Sheets("设置")

如果实在不清楚,可以不声明,即使用默认的variant类型;如果确实想声明一下,那么可以dim SH as object,B as String(或者integer等,看你需要什么数据);如果还不死心,一定要搞清楚SH到底是什么类型,那么可以dim SH As Worksheet ,就是工作表类型,因为你赋值的Sheets("设置")是一个Worksheet,由于是对象,所以也可以用通用的object。 上面方法都可用,有什么区别呢,如果定义Worksheet(即真正的类型),这样写代码时会有代码提示,初学者推荐。 另外的声明没有问题。另外注意对象变量赋值用set
2023-07-15 01:21:383

Excel ActiveWorkbook.Sheets.Active这句怎么不对了

ActiveWorkbook.Sheets 是集合,要访问其中一个表,需指定索引号,激活的方法是Activate应该是这样的:ActiveWorkbook.Worksheets(1).Activate把当前工作簿的第一表置为活动表。
2023-07-15 01:21:451

VBA 除了用Sheets("sheet1") 表示选取第一个工作表 还能用什么其他方法

直接用sheet1.activavte
2023-07-15 01:22:051

excel一个表格数据导入另一表格多个Sheet中

把下面这个宏运行下就行了,没有该姓名表自动增加且金额写入B7单元格,有该姓名表格直接把金额写入B7单元格。Subaa()DimarrDimxAsLong,rAsLongDimtAsStringOnErrorResumeNextWithSheets("汇总表")r=.Range("A65536").End(xlUp).Rowarr=.Range("A3:C"&r)Forx=1ToUBound(arr)i=Sheets.Countt=arr(x,1)IfSheets(t)IsNothingThenSheets.AddAfter:=Sheets(i)Sheets(i+1).Name=tEndIfSheets(t).Range("B7")=arr(x,2)NextxEndWithEndSub
2023-07-15 01:22:141

EXCEL VBA指定sheet

格式是这样的:sheets("sheet的名字")
2023-07-15 01:22:255

EXCEL VBA 关于Sheets(Array())问题

说来惭愧,这个问题,我花了好长时间就是找不出原因,只好再向其他各位老师求教,现有2个答案,都可行。 我们主要是被这个录制的宏给蒙蔽了。 Sub xxx() Dim m For p = 1 To 3 k = k + 1 If k = 1 Then m = Sheets(k).Name Else m = m & "," & Sheets(k).Name End If Next Sheets(Split(m, ",")).Select End Sub Sub xx() Dim m(1 To 3) For p = 1 To 3 m(p) = Sheets(p).Name Next Sheets(m).Select End Sub
2023-07-15 01:22:431

excel中sheets(1).cells(2,2)中的单元格内容有数值,将数值写入到sheets(2).cells(2.4)中

excel vba 工程资源管理器双击sheets(1),编辑窗口输入以下代码:Private Sub Worksheet_Change(ByVal Target As Range)Sheets(2).Cells(2,4) = Cells(2, 2)End Sub
2023-07-15 01:22:511

excel 根据目录 生成 相应的sheet

CTRL+F3,定义“表目录”使用宏表函数=MID(GET.WORKBOOK(1),FIND("]",GET.WORKBOOK(1))+1,100)&T(NOW())在A列中调用宏表函数=IF(ISERROR(INDEX(表名,ROW()-ROW($A$1))),,INDEX(表名,ROW()-ROW($A$1)))
2023-07-15 01:23:012