网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月13日漏签0天
vba吧 关注:17,061贴子:66,729
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 9回复贴,共1页
<<返回vba吧
>0< 加载中...

求助vba数组操作了,依然会卡一秒多

  • 只看楼主
  • 收藏

  • 回复
  • 天之坦克杀手
  • 名震江湖
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Sub DivideByTenThousand(sourceRange As Range)
Application.ScreenUpdating = False ' 禁用屏幕刷新
Application.Calculation = xlCalculationManual ' 禁用自动计算
Dim inputData As Variant
Dim outputRange As Range
Dim i As Long, j As Long
' 一次性读取原始数据到数组
inputData = sourceRange.Value
' 设置输出区域(源区域右侧一列)
Set outputRange = sourceRange.Offset(0, 1)
' 处理数据数组
For i = LBound(inputData, 1) To UBound(inputData, 1)
For j = LBound(inputData, 2) To UBound(inputData, 2)
If IsNumeric(inputData(i, j)) Then
inputData(i, j) = Round(inputData(i, j) / 10000, 2)
Else
inputData(i, j) = 0
End If
Next j
Next i
' 一次性写入结果
outputRange.Value = inputData
' 恢复Excel设置
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub


  • 天之坦克杀手
  • 名震江湖
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
因为接下来要对结果数值进行调整所以不能用公式


2025-08-13 09:14:50
广告
不感兴趣
开通SVIP免广告
  • 娜乌_西卡
  • 四方游侠
    5
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
只有一列那个j循环就取消吧,直接把j换成1


  • 天之坦克杀手
  • 名震江湖
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
估计是其他自定义公式重算,明明没有引用单元格
在外面调用时设置禁止刷新试试


  • 落叶漂泊
  • 江湖少侠
    6
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把你现在的除法改为乘法运算,速度可以提高几倍


  • 李子树下
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
把刷新相关的那几行去掉。另外,提醒下vba的round不是四舍五入


  • 阳光上的桥
  • 后起之秀
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
看起来程序代码已经最优了,1秒也不是很久,如果成千上万的数据那就正常了


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回vba吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示