ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 代码优化

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-8 00:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
ChangeKing7 发表于 2023-3-7 22:21
呃?不用公式的话 vba里的方法或者函数 解决不了问题 我也是没有办法了

VBA如果没有现成函数的话就自己写个。你发个附件算了,搞点模拟数据。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-8 09:08 | 显示全部楼层
excel玉米 发表于 2023-3-7 21:54
假设是数据在sheet1,代码大概如下(没在电脑边,手机上输入)
Sub 输入公式()
Dim Arr,i%

还得请教一下 您写这段示意代码 第二步是把公式赋值给了单元格?

TA的精华主题

TA的得分主题

发表于 2023-3-8 09:24 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
excel玉米 发表于 2023-3-7 21:54
假设是数据在sheet1,代码大概如下(没在电脑边,手机上输入)
Sub 输入公式()
Dim Arr,i%

单元格写入公式,数组没有变,最后数组又原值写入单元格??

TA的精华主题

TA的得分主题

发表于 2023-3-8 11:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
with Range("a2:a" & r)
       .formula ="=VLOOKUP(C2,'表1'!C:I,7,)"
       .value=.value  '若要保留公式...刪此行
end with
其它b列/e列相同作法~~
'=======================
vba絕對可以得到那三個公式所需結果, 只是都要執行刷新~~
'=======================
若要保留公式而提高效能, 則不要每次都刷整列公式,
例如//原有50行公式, 新增30行資料, 則只要補填這30行公式即可~~
或只保留第一行公式, 利用這單元格公式, 只刷第二行至底行, 再粘成值

'=======================

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-3-8 11:43 来自手机 | 显示全部楼层
ChangeKing7 发表于 2023-3-8 09:08
还得请教一下 您写这段示意代码 第二步是把公式赋值给了单元格?

公式放入数组,然后将数组写入表中。记住VB A最忌频繁读写单元格,数组是存在内存中,对数组进行操作,速度就快了。

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-8 12:35 | 显示全部楼层
excel玉米 发表于 2023-3-8 11:43
公式放入数组,然后将数组写入表中。记住VB A最忌频繁读写单元格,数组是存在内存中,对数组进行操作,速 ...

好的 明白 那若是公式放入数组 您昨天给我示意的代码是不是就不能将公式赋值给单元格range?

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-8 12:36 | 显示全部楼层
准提部林 发表于 2023-3-8 11:08
with Range("a2:a" & r)
       .formula ="=VLOOKUP(C2,'表1'!C:I,7,)"
       .value=.value  '若要保 ...

感谢您提供的思路 很受教

TA的精华主题

TA的得分主题

发表于 2023-3-8 12:48 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
ChangeKing7 发表于 2023-3-8 12:35
好的 明白 那若是公式放入数组 您昨天给我示意的代码是不是就不能将公式赋值给单元格range?

formula..可以一次刷滿整区
用數組寫入公式再填滿...多此一舉...

在迴圈中寫入公式...一定慢~~

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-8 13:05 | 显示全部楼层
准提部林 发表于 2023-3-8 12:48
formula..可以一次刷滿整区
用數組寫入公式再填滿...多此一舉...

您的意思是直接用range.formula 不需要加一层数组?

TA的精华主题

TA的得分主题

发表于 2023-3-8 13:14 | 显示全部楼层
ChangeKing7 发表于 2023-3-8 13:05
您的意思是直接用range.formula 不需要加一层数组?

14樓就是一次刷A列公式//

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

本版积分规则

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

GMT+8, 2024-11-18 15:37 , Processed in 0.036159 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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