Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2323|回复: 9

用VBA数组把这个改写一下 这个计算单

[复制链接]
发表于 2017-1-30 16:37 | 显示全部楼层 |阅读模式
用VBA数组把这个改写一下  这个计算单


用VBA数组把这个改写一下 这个计算单.rar

17.75 KB, 下载次数: 24

发表于 2017-1-30 21:34 | 显示全部楼层
本帖最后由 精英土豪 于 2017-1-30 21:36 编辑

Sub 计算()Dim es As Integer
es = Cells(Rows.Count, 3).End(xlUp).Row
If es > 4 Then
For i = 5 To es
Cells(i, 5) = Cells(i, 4) * Cells(i, 3)
   Next
   End If
End Sub

评分

参与人数 1 +6 收起 理由
laoau138 + 6 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-1-30 22:36 | 显示全部楼层
精英土豪 发表于 2017-1-30 21:34
Sub 计算()Dim es As Integer
es = Cells(Rows.Count, 3).End(xlUp).Row
If es > 4 Then

不行    你这个不是数组   而且只做了一部分
回复

使用道具 举报

发表于 2017-2-1 22:28 | 显示全部楼层
我不代工,你之前用的循环不好,我只是提供一下思路。再说了  你的表数据量不上万  够了
你回看你的思路
回复

使用道具 举报

 楼主| 发表于 2017-2-1 22:36 | 显示全部楼层
精英土豪 发表于 2017-2-1 22:28
我不代工,你之前用的循环不好,我只是提供一下思路。再说了  你的表数据量不上万  够了
你回看你的思路

不懂了就这样
回复

使用道具 举报

发表于 2017-2-1 22:38 | 显示全部楼层
谁写的代码
回复

使用道具 举报

发表于 2017-2-1 22:41 | 显示全部楼层
你就是求 c列  d列对应相乘
回复

使用道具 举报

发表于 2017-2-2 17:37 | 显示全部楼层

计算过程么??
其实用range.find 来获取最未数据行"比"range.end要好些,不容易出错


  1. Sub jishuan()
  2. Dim Arr() As Variant, Hx As Integer
  3.     Hx = Range("B1000").End(xlUp).Row
  4.     If Hx < 5 Then Exit Sub
  5.     With Range("C5:E" & Hx)
  6.         Arr = .Value
  7.         For Hx = 1 To UBound(Arr)
  8.             Arr(Hx, 3) = Arr(Hx, 1) * Arr(Hx, 2)
  9.         Next
  10.         .Value = Arr
  11.     End With
  12. End Sub
复制代码

评分

参与人数 1 +6 收起 理由
laoau138 + 6 来学习

查看全部评分

回复

使用道具 举报

 楼主| 发表于 2017-2-2 18:03 | 显示全部楼层
无聊的疯子 发表于 2017-2-2 17:37
计算过程么??
其实用range.find 来获取最未数据行"比"range.end要好些,不容易出错

里面几段代码  全部不要用find
回复

使用道具 举报

 楼主| 发表于 2017-2-3 16:08 | 显示全部楼层
还没有人来做
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 19:52 , Processed in 0.794154 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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