ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: lxg315

求助将一个表的数据提取写入另一个表里面,愁得睡不着觉啊

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-9 16:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ykcbf1100 发表于 2023-3-9 16:36
那应该是版本问题了吧。
workbookopen是现在常用的打开文件的方式,以前是用GetObject来打开的。你可以 ...

了解,这个我后面再修改

TA的精华主题

TA的得分主题

发表于 2023-3-9 16:58 | 显示全部楼层
lxg315 发表于 2023-3-9 16:46
了解,这个我后面再修改

明天再看一下吧。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-9 17:10 | 显示全部楼层
ykcbf1100 发表于 2023-3-9 16:58
明天再看一下吧。

嗯,多谢多谢,现在手工挑数据实在是有点恼火啊

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-9 20:47 | 显示全部楼层
本帖最后由 lxg315 于 2023-3-9 20:55 编辑
ykcbf1100 发表于 2023-3-9 16:58
明天再看一下吧。

晚上我想了一下,这样变通一下是不是更方便于编程:

1:如下图片所示,在将表1的41这个尺寸的测量值41.004填入报告的同时,将41这个尺寸左边的“距离1-X距离”也l填写到报告表的右边,所以报告表Sample(1)这列填完后,对应表格右边也有1列内容
2:再用报告表右边这列的文字内容去匹配表2“内容”这一列,匹配上了就提取表2里面“#1”这列的测量数据填写到报告里面Sample(2)这一列
3:以此类推,用报告表右边这列的文字内容去匹配表N“内容”这一列,匹配上了就提取表N里面“#1”这列的测量数据填写到报告里面Sample(N)这一列

QQ截图20230309204554.png
QQ截图20230309205135.png

TA的精华主题

TA的得分主题

发表于 2023-3-10 00:35 | 显示全部楼层
楼主吧问题复杂化了,其实很简单
1.获取需求尺寸清单(楼主黄色标识的)

Sub 获取需求尺寸清单() '参考
    Dim arr
   
    Cells.Find("OK/NG").Resize(2, Columns.Count).Delete'方便操作,取完数据后关闭不保存
   
    [a8].CurrentRegion.AutoFilter Field:=2, Criteria1:=RGB(255, 255, 0), Operator:=xlFilterCellColor
    [a8].CurrentRegion.SpecialCells(xlCellTypeVisible).Copy
   
    Sheets.Add After:=ActiveSheet
    ActiveSheet.Paste
    arr = [a1].CurrentRegion
End Sub

2.根据步骤1获取的清单(内容)列是不重复的,抓取剩余所有样品的测量数据。
    最终得到类似如下数据。
     a) 4# 样品有一个没有数据
     b) 5#\6#两个样品测量数据相同?
     Range("M2") ==B2&"-"&COUNTIF(B$2:B2,B2) 向下填充 (此公式生成尺寸Dimension唯一标识。58-1,58-2 ......)
    image.jpg
3.在根据步骤2得到的数据,匹配填入SIR工作表中,完工!
     a) SIR Range("M8") =B8&"-"&COUNTIF(B$8:B8,B8) 向下填充 (此公式生成尺寸Dimension唯一标识。58-1,58-2 ......)
     b) SIR Range("E8") =IFERROR(INDEX(Sheet2!$A$1:$M$27,MATCH($M8,Sheet2!$M$1:$M$27,0),MATCH(E$7,Sheet2!$A$1:$M$1,0)),"") 向右向填充
     c) 转换为数值,并清除SIR Range("M8:M50")
     d) 填充其余尺寸数据

备注:
1.建议规范原始测量数据源,从根本解决问题。尺寸编号做唯一标识FAI58_1,FAI58_2 ...... 方便数据整理和检查
2. 不建议SIR 插入列,影响美观
全部代码就不写了,
请根据实际情况使用。
以上请参考。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-10 07:38 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
M兄这个对的,再将提取的数据写入报告表就基本实现我的要求了,谢谢您的建议

要是有个完整的代码就好了,还是很感谢您提供的思路。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-10 07:41 | 显示全部楼层
ExcelHomeFM 发表于 2023-3-10 00:35
楼主吧问题复杂化了,其实很简单
1.获取需求尺寸清单(楼主黄色标识的)

5和6数据是拷贝过来的,就是想看看在原表格上再插入一列,实现提取6列数据,因为数量样品不定,有时候是多于报告表的5列的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 15:39 , Processed in 0.045465 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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