Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
楼主: upczxf

[已解决]你好,求VBA高手帮忙编辑下

  [复制链接]
 楼主| 发表于 2012-4-7 17:36 | 显示全部楼层
使用时,我只需要在数据栏中录入数据,然后调运宏命令。最后得到的就是填好数据的表格 。而且表格大小与SHEET1 完全一样,
回复

使用道具 举报

发表于 2012-4-7 17:42 | 显示全部楼层
upczxf 发表于 2012-4-7 17:30
我想通过一个宏命令,使之先复制表格SHEET1,并保持该表格大小不变,第二步是在复制过的SHEET1中采取调用函数 ...

使之先复制表格SHEET1,并保持该表格大小不变,  这个很明白

第二步是在复制过的SHEET1中采取调用函数,如SHEET1中的焊口、管号、长度、里程链接数据中相应数据。

复制过来的表是有数据还是没有数据的??这里是一串问号
如果是有数据的,那这个数据和复制前的那个表里的数据一样,代码又如何处理呢?
如果没数据,数据就需要用代码来读取,
现在知道要在数据表里读取,这个数据根据复制过来的表里的那一项来读????这里也是一串问号


由于第二步问号太多,无法进行下面的第三步,第三步同样存在很多问号
第三部是如果焊口编号对应的分部工程名称不一致时,则终止此循环,同时进行再次复制表格,然后继续调用焊口、管号、长度、连续里程等信息。

今天就问到这里,谁要看懂了就帮忙弄一下吧!!我反正没看懂
回复

使用道具 举报

 楼主| 发表于 2012-4-7 17:51 | 显示全部楼层

RE: 你好,求VBA高手帮忙编辑下

这回看明白了吗?大神

线17 管道竣工地理信息表.zip

99.11 KB, 下载次数: 9

回复

使用道具 举报

 楼主| 发表于 2012-4-7 17:52 | 显示全部楼层
我上传的表中有一小部分编码,但是写的不好,很多地方需要修改
回复

使用道具 举报

 楼主| 发表于 2012-4-7 18:01 | 显示全部楼层
我想通过宏命令实现如下功能:
1、复制表格SHEET1,
2、在复制的SHEET1中,填充数据,具体规则是这样的。焊口编号调用数据表中E列,从E2开始,管号调用数据表中B列,从B2开始,单根管长调用数据表中C列,从C2开始,如果数据表中A列数据不一致的时候,先执行一样数据部分的分部工程名称,填入复制的SHEET1表格分部工程名称,则从不一样的位置开始重新执行表格复制、焊口 、管号、长度 里程等信息
回复

使用道具 举报

发表于 2012-4-7 18:24 | 显示全部楼层
这段时间把前面学的都给荒废了
回复

使用道具 举报

发表于 2012-4-7 18:36 | 显示全部楼层
upczxf 发表于 2012-4-7 18:01
我想通过宏命令实现如下功能:
1、复制表格SHEET1,
2、在复制的SHEET1中,填充数据,具体规则是这样的。 ...

这样说就清楚了嘛,晚上回家有时间就给你弄!
回复

使用道具 举报

发表于 2012-4-7 21:18 | 显示全部楼层    本楼为最佳答案   
upczxf 发表于 2012-4-7 18:01
我想通过宏命令实现如下功能:
1、复制表格SHEET1,
2、在复制的SHEET1中,填充数据,具体规则是这样的。 ...

试试这个代码
直接运行 XieRu 过程即可!


  1. Dim TorF As Boolean, Hx As Long, Sh As Worksheet
  2. Sub CopyBiao()
  3.   If Not TorF Then MsgBox "请运行 XirRu 程序!", , "错误": Exit Sub
  4.   Sheets("Sheet1").Copy Sheets(Sheets.Count)
  5.   Set Sh = Sheets(Sheets.Count - 1)
  6.   Sh.Name = "施工记录" & Sheets.Count - 2
  7.   Hx = 8
  8. End Sub
  9. Sub XieRu()
  10. Dim X As Long, Arr As Variant
  11.   TorF = True
  12.   With Sheets("数据")
  13.     Hx = .Range("A65536").End(xlUp).Row
  14.     Arr = .Range("A2:E" & Hx)
  15.   End With
  16.   Call CopyBiao
  17.   For X = 1 To UBound(Arr)
  18.     With Sh
  19.       .Cells(Hx, "A") = Arr(X, 5)
  20.       .Cells(Hx - 1, "C") = Arr(X, 2)
  21.       .Cells(Hx - 1, "D") = Arr(X, 3)
  22.       .Cells(Hx, "E") = Arr(X, 4)
  23.       Hx = Hx + 2
  24.       If X = UBound(Arr) Then .Range("C5") = Arr(X, 1): Exit For
  25.       If Arr(X, 1) <> Arr(X + 1, 1) Then .Range("C5") = Arr(X, 1): Call CopyBiao
  26.     End With
  27.   Next
  28. End Sub

复制代码

回复

使用道具 举报

发表于 2012-4-8 05:55 | 显示全部楼层
sdfffffffdssdfsdfsdfsdfdssd
回复

使用道具 举报

 楼主| 发表于 2012-4-8 08:10 | 显示全部楼层
无聊的疯子 发表于 2012-4-7 21:18
试试这个代码
直接运行 XieRu 过程即可!

谢谢。已经能实现大部分功能了。能让复制的第二张表是挨着第一张表的吗?就是打印的时候可以直接在一张表上选择打印多少张就好了??非常感激
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-11 11:26 , Processed in 1.284081 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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