ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 希望高手哥哥能帮忙讲解下下面的代码是什么意思

[复制链接]

TA的精华主题

TA的得分主题

发表于 2019-2-11 20:13 | 显示全部楼层 |阅读模式
自已现在也在慢慢的学习VBA,可能是没有什么底子,很多代码不能理解是什么意思,
希望高手哥哥能帮忙讲解下下面的代码是什么意思。
  1. Dim Arr, ar, n%, k%, s$, d
  2.     With Worksheets("入库单")
  3.         n = .[b5].End(4).Row()
  4.         If n = 6 Then End
  5.         d = .[c4]: s = .[k4]
  6.         Arr = .[b7:k7].Resize(n - 6)
  7.         ar = .[l7].Resize(n - 6)
  8.         Union(Range(.Cells(7, 2), .Cells(n, 2)), Range(.Cells(7, 6), .Cells(n, 9)), _
  9.                     Range(.Cells(7, 11), .Cells(n, 12))).ClearContents
  10.    
  11.     With Worksheets("入库记录")
  12.         k = .[b1048576].End(3).Row + 1
  13.         If k < 5 Then k = 5
  14.         .Cells(k, 2).Resize(n - 6, 10) = Arr
  15.         .Cells(k, 14).Resize(n - 6) = ar
  16.         .Cells(k, 1).Resize(n - 6).Formula = "=row()-4"
  17.         .Cells(k, 12).Resize(n - 6) = d
  18.         .Cells(k, 13).Resize(n - 6) = s
复制代码

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-11 20:17 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
自己顶下,别让沉下去了。

TA的精华主题

TA的得分主题

发表于 2019-2-11 20:25 来自手机 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2019-2-11 20:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
nini711 发表于 2019-2-11 20:25
我确定我能读懂,不过得翻翻书,帮你顶下

那你得好好的翻吧

TA的精华主题

TA的得分主题

发表于 2019-2-11 21:54 | 显示全部楼层
如果哥哥给小妹讲解了  有什么好处呀

TA的精华主题

TA的得分主题

发表于 2019-2-13 08:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 nini711 于 2019-2-13 09:51 编辑

Dim Arr, ar, n%, k%, s$, d
    With Worksheets("入库单")
        n = .[b5].End(4).Row()’end(4)是end(xldown)的意思么?,那就是获取b5向下数最后一个不为空的单元格行序数。
        If n = 6 Then End
        d = .[c4]: s = .[k4]
        Arr = .[b7:k7].Resize(n - 6)
        ar = .[l7].Resize(n - 6)
        Union(Range(.Cells(7, 2), .Cells(n, 2)), Range(.Cells(7, 6), .Cells(n, 9)), _
                    Range(.Cells(7, 11), .Cells(n, 12))).ClearContents

with worksheets之后的.[b5]相当于
worksheets("入库单").[b5]指入库单的b5单元格。
d = .[c4]: s = .[k4]相当于d =worksheets("入库单") .[c4]: s =worksheets("入库单") .[k4]
Arr = .[b7:k7].Resize(n - 6),resize是以b7:K7这一选区为基准,将选区向下扩大n-6行。比如当n=8,那arr的range就是b7:K8

    With Worksheets("入库记录")
        k = .[b1048576].End(3).Row + 1
        If k < 5 Then k = 5
        .Cells(k, 2).Resize(n - 6, 10) = Arr
        .Cells(k, 14).Resize(n - 6) = ar
        .Cells(k, 1).Resize(n - 6).Formula = "=row()-4" ’formula是公式属性,把这个选区都输入“=row()-4”这个公式
        .Cells(k, 12).Resize(n - 6) = d
        .Cells(k, 13).Resize(n - 6) = s

TA的精华主题

TA的得分主题

发表于 2019-2-13 08:42 | 显示全部楼层
這樣沒什麼意思
都是基本句,難道你看一句發問一句嗎,看書更好

TA的精华主题

TA的得分主题

发表于 2019-2-13 09:02 | 显示全部楼层
  1. Dim Arr, ar, n%, k%, s$, d
  2.     With Worksheets("入库单")
  3.         n = .[b5].End(4).Row() '取得B5单元格开始,连续区域中的最后一个非空单元格的行号
  4.         If n = 6 Then End '如果N为6,退出
  5.         d = .[c4]: s = .[k4]
  6.         Arr = .[b7:k7].Resize(n - 6) 'Arr的区域 为 B7:Kn
  7.         ar = .[l7].Resize(n - 6) 'ar的区域 为l7:ln
  8.         '清除B7:Bn,F7:In,K7:Ln这三个区域的内容
  9.         Union(Range(.Cells(7, 2), .Cells(n, 2)), Range(.Cells(7, 6), .Cells(n, 9)), _
  10.                     Range(.Cells(7, 11), .Cells(n, 12))).ClearContents
  11.    
  12.     With Worksheets("入库记录")
  13.         k = .[b1048576].End(3).Row + 1 '取得B1048576 单元格向上的第一个非空单元格所在的下一行的行号,相当于B列有效区域的下一行的行号
  14.         If k < 5 Then k = 5
  15.         .Cells(k, 2).Resize(n - 6, 10) = Arr '在 B列至K列 回填
  16.         .Cells(k, 14).Resize(n - 6) = ar '在N列填充原l 列的内容
  17.         .Cells(k, 1).Resize(n - 6).Formula = "=row()-4" ' 在A 列编号
  18.         .Cells(k, 12).Resize(n - 6) = d
  19.         .Cells(k, 13).Resize(n - 6) = s
复制代码

TA的精华主题

TA的得分主题

发表于 2019-2-13 09:09 | 显示全部楼层
妹子,抽空学学算法和语法,抽象难懂,但是会进步神速的
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

关闭

最新热点上一条 /1 下一条

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

GMT+8, 2024-4-25 08:11 , Processed in 0.033420 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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