Excel精英培训网

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

[已解决]请教这句代码如何修改

[复制链接]
发表于 2013-1-26 23:57 | 显示全部楼层 |阅读模式
以下这句代码是将多个表的数据复制到一个表中,但在复制数据的同时,也将公式一起复制过来了,我只要数据,不要公式,请帮忙改一下。谢谢!
Sheets(sht).Range("a5:Q" & endrw3).Copy Sheets(1).Cells(endrw2 + 1, 1)
最佳答案
2013-1-27 00:59
  1. Sub 数据更新()
  2.     Dim sht As Integer    '声明一个数值型变量sht,用于代表表位置
  3.     Dim endrw1 As Integer    '声明一个数值型变量endrw1,用于代表活动表的数据行数
  4.     Dim endrw2 As Integer    '声明一个数值型变量endrw2,用于代表接收数据的表的数据行数
  5.     For sht = 2 To 9    '从第2个表开始执行以下操作至第9个表结束
  6.         endrw1 = Sheets(sht).Range("a65536").End(xlUp).Row    '返回位置为sht的工作表的数据行数'
  7.         endrw2 = Sheets(1).Range("a65536").End(xlUp).Row    '返回接收数据的表(位置为1)的数据行数'
  8.         If endrw1 > 4 Then
  9.             endrw3 = endrw1
  10.         Else
  11.             endrw3 = 5
  12.         End If
  13.         Sheets(sht).Range("a5:Q" & endrw3).Copy
  14.         Sheets(1).Cells(endrw2 + 1, 1).PasteSpecial xlPasteValues
  15.         Application.CutCopyMode = False
  16.         '选定sht表的A5:Qenerw1区域,并把选定区域的数据复制到接收数据的表(位置为1)的数据之后的第一个空行中'
  17.     Next sht
  18. End Sub
复制代码
 楼主| 发表于 2013-1-26 23:59 | 显示全部楼层
完整的代码是:
Sub 数据更新()
Dim sht As Integer '声明一个数值型变量sht,用于代表表位置
Dim endrw1 As Integer '声明一个数值型变量endrw1,用于代表活动表的数据行数
Dim endrw2 As Integer '声明一个数值型变量endrw2,用于代表接收数据的表的数据行数
For sht = 2 To 9 '从第2个表开始执行以下操作至第9个表结束
endrw1 = Sheets(sht).Range("a65536").End(xlUp).Row '返回位置为sht的工作表的数据行数'
endrw2 = Sheets(1).Range("a65536").End(xlUp).Row '返回接收数据的表(位置为1)的数据行数'
If endrw1 > 4 Then
endrw3 = endrw1
Else
endrw3 = 5
End If
Sheets(sht).Range("a5:Q" & endrw3).Copy Sheets(1).Cells(endrw2 + 1, 1)
'选定sht表的A5:Qenerw1区域,并把选定区域的数据复制到接收数据的表(位置为1)的数据之后的第一个空行中'
Next sht
End Sub
回复

使用道具 举报

发表于 2013-1-27 00:59 | 显示全部楼层    本楼为最佳答案   
  1. Sub 数据更新()
  2.     Dim sht As Integer    '声明一个数值型变量sht,用于代表表位置
  3.     Dim endrw1 As Integer    '声明一个数值型变量endrw1,用于代表活动表的数据行数
  4.     Dim endrw2 As Integer    '声明一个数值型变量endrw2,用于代表接收数据的表的数据行数
  5.     For sht = 2 To 9    '从第2个表开始执行以下操作至第9个表结束
  6.         endrw1 = Sheets(sht).Range("a65536").End(xlUp).Row    '返回位置为sht的工作表的数据行数'
  7.         endrw2 = Sheets(1).Range("a65536").End(xlUp).Row    '返回接收数据的表(位置为1)的数据行数'
  8.         If endrw1 > 4 Then
  9.             endrw3 = endrw1
  10.         Else
  11.             endrw3 = 5
  12.         End If
  13.         Sheets(sht).Range("a5:Q" & endrw3).Copy
  14.         Sheets(1).Cells(endrw2 + 1, 1).PasteSpecial xlPasteValues
  15.         Application.CutCopyMode = False
  16.         '选定sht表的A5:Qenerw1区域,并把选定区域的数据复制到接收数据的表(位置为1)的数据之后的第一个空行中'
  17.     Next sht
  18. End Sub
复制代码
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-19 23:18 , Processed in 0.369358 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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