Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 3776|回复: 18

[已解决]请教工作簿间复制数据

[复制链接]
发表于 2013-5-6 16:32 | 显示全部楼层 |阅读模式
请教工作簿间复制数据。谢谢!
工作簿1向工作簿2转移数据.rar (62.95 KB, 下载次数: 12)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2013-5-6 21:28 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2013-5-7 08:50 | 显示全部楼层
回复

使用道具 举报

发表于 2013-5-7 09:00 | 显示全部楼层
怎么个转移法?
需要格式不?
回复

使用道具 举报

 楼主| 发表于 2013-5-7 09:34 | 显示全部楼层
本帖最后由 yizhih 于 2013-5-7 09:36 编辑
hwc2ycy 发表于 2013-5-7 09:00
怎么个转移法?
需要格式不?

工作簿1向工作簿2复制数据,工作簿2内的数据是复制后的样子,最好是带格式复制到工作簿2。
我的标题写的不确切,好像写“转移”不确切,应该是“复制”。
回复

使用道具 举报

发表于 2013-5-7 09:35 | 显示全部楼层
  1. Sub 按钮2_Click()
  2.     Dim wbDst As Workbook
  3.     Dim lCol As Long
  4.     Dim lShtNumber As Long
  5.     On Error GoTo ErrorHandler

  6.     Application.ScreenUpdating = False
  7.     Application.DisplayAlerts = False
  8.     Set wbDst = GetObject(ThisWorkbook.Path & Application.PathSeparator & "工作簿2.xls")
  9.     With Worksheets("sheet10")
  10.         Debug.Print "sheet10"
  11.         For lCol = 84 To 99 Step 3
  12.             lShtNumber = lShtNumber + 1
  13.             Debug.Print lCol, lShtNumber, lShtNumber + 12
  14.             .Range(.Cells(3, lCol), .Cells(3, lCol).End(xlDown)).Copy
  15.             With wbDst
  16.                 .Worksheets("sheet" & lShtNumber).Cells(Rows.Count, 2).End(xlUp).Offset(2).PasteSpecial Transpose:=True
  17.                 .Worksheets("sheet" & lShtNumber + 12).Cells(Rows.Count, 2).End(xlUp).Offset(2).PasteSpecial Transpose:=True
  18.             End With
  19.             Application.CutCopyMode = False
  20.         Next
  21.     End With
  22.     lShtNumber = 7
  23.     With Worksheets("sheet18")
  24.         Debug.Print "sheet18"
  25.         For lCol = 84 To 99 Step 3
  26.             Debug.Print lCol, lShtNumber, lShtNumber + 6
  27.             .Range(.Cells(3, lCol), .Cells(3, lCol).End(xlDown)).Copy
  28.             With wbDst
  29.                 .Worksheets("sheet" & lShtNumber).Cells(Rows.Count, 2).End(xlUp).Offset(3).PasteSpecial Transpose:=True
  30.                 .Worksheets("sheet" & lShtNumber + 6).Cells(Rows.Count, 2).End(xlUp).Offset(3).PasteSpecial Transpose:=True
  31.             End With
  32.             lShtNumber = lShtNumber + 1
  33.             Application.CutCopyMode = False
  34.         Next
  35.     End With
  36.     Application.ScreenUpdating = True
  37.     MsgBox "复制完成"
  38.     wbDst.Close True
  39.     Exit Sub
  40. ErrorHandler:
  41.     MsgBox Err.Number & vbCrLf & _
  42.            Err.Description
  43. End Sub
复制代码
回复

使用道具 举报

发表于 2013-5-7 09:42 | 显示全部楼层
你把代码试下,有问题再改。
回复

使用道具 举报

 楼主| 发表于 2013-5-7 09:52 | 显示全部楼层
hwc2ycy 发表于 2013-5-7 09:35

感谢 hwc2ycy 老师,有些小问题请修改一下:
1、对于工作簿2的Sheet1-12表,请把数据复制到以B2开始的第二行。
2、对于工作簿2的Sheet13-18表,请把数据分别复制到以B2开始的第二行和以B3开始的第三行,具体是工作簿1的Sheet10表的数据复制到以B2开始的第二行,工作簿1的Sheet18表的数据复制到以B3开始的第三行。
回复

使用道具 举报

发表于 2013-5-7 09:54 | 显示全部楼层
yizhih 发表于 2013-5-7 09:52
感谢 hwc2ycy 老师,有些小问题请修改一下:
1、对于工作簿2的Sheet1-12表,请把数据复制到以B2开始的第 ...

啥叫B2开始的第2行,B4么?
回复

使用道具 举报

发表于 2013-5-7 09:56 | 显示全部楼层
第2个问题:
  1.             With wbDst
  2.                 .Worksheets("sheet" & lShtNumber).Cells(Rows.Count, 2).End(xlUp).Offset(2).PasteSpecial Transpose:=True
  3.                 .Worksheets("sheet" & lShtNumber + 6).Cells(Rows.Count, 2).End(xlUp).Offset(3).PasteSpecial Transpose:=True
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-24 21:25 , Processed in 0.399639 second(s), 15 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表