ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

selection 请教

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-6-17 21:51 | 显示全部楼层 |阅读模式
本帖最后由 ME.李 于 2023-6-18 00:59 编辑

小弟 用set  RNG = selection,选中了个区域  然后复制到一个工作表 ,现在我的操作是 数据复制后  用delete删除不需要的列 最后保存。 查了网上资料  有人说可以装入一个数组,可以直接选择 需要的列 因为确实不知道怎么操作 因此请教论坛大神能指点下或者讲解下 不胜感激
TN3K1@J(MQ5]0`0RJC8H@52.png
大概实现的效果就是 我先选中一个区域(一行或者多行),然后打开一个文档,新增一个工作表  然后把需要的数据复制过去。但是还没调好 感觉哪里不对,我只想打开那个文档只打开一次 然后选择区域 就COPY 过去。现在每运行这个代码 就弹出打开对画框   而且  for循环 不知道为什么不运行

新建 XLSX 工作表.zip

17.65 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2023-6-17 22:13 | 显示全部楼层
上传附件,模拟一下结果 。。。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-18 01:03 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
gwjkkkkk 发表于 2023-6-17 22:13
上传附件,模拟一下结果 。。。

已传附件 还请指教。我想通过SELECTion 选中一行 ,然后打开一个文档  然后COPY 数据。打开的文档只需要打开一次 ,然后就根据需要去选择区域   就复制到打开的文档,但是现在代码运行不了

TA的精华主题

TA的得分主题

发表于 2023-6-18 12:23 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
请参考。。。

新建 XLSX 工作表.rar

22.03 KB, 下载次数: 4

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-18 14:20 | 显示全部楼层

感觉不是那效果,第一个  selection 选中的行  比如我只想需要选中行的第一列  第二列   第五列  然后COPY到新的工作簿1. 现在朋友的代码还是一整行数据,所以昨晚发帖请求论坛大哥 能指点一下  把selection 区域 装入一维数组  数组就可以随便选择了

1687068874098.png


2.第二个就是 能不能只打开一次新的文档,现在朋友的代码虽然可以再次打开新的文档 但是数据复制的时候是复制到新的工作表,我初衷是复制的数据装入同一个工作表

TA的精华主题

TA的得分主题

发表于 2023-6-18 14:37 | 显示全部楼层
ME.李 发表于 2023-6-18 14:20
感觉不是那效果,第一个  selection 选中的行  比如我只想需要选中行的第一列  第二列   第五列  然后COP ...

这个不会了。。。

TA的精华主题

TA的得分主题

发表于 2023-6-18 20:09 | 显示全部楼层
你要先把表内的信息赋值到数组里,然后才能把数组输出到目标工作簿。我看了下你的代码只是在做后半部分。

前半部分大概就是下面这个赋值的过程
for i = R1 to R1 + CC - 1 'R1 CC看下面
arr(i-R1+1,1) = range(xxx).value   
arr(i-R1+1,2) = range(xxx).value  
……
Next

然后你后面输出数组,是在重复输出arr(1,x),也要改成循环的

我在贴吧找到个模板,是用来读取选中范围的行数的(按住shift选中不连续的范围的情形不可用)
R1 = ActiveCell.Row '选取范围的首行
For S = 1 To Selection.Areas.Count  'CC=选取范围总共有多少行
CC = CC + Selection.Areas(S).Rows.Count
Next

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-18 21:35 | 显示全部楼层
Lastdoor 发表于 2023-6-18 20:09
你要先把表内的信息赋值到数组里,然后才能把数组输出到目标工作簿。我看了下你的代码只是在做后半部分。
...

嗯  好的谢谢
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 15:40 , Processed in 0.040566 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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