精华内容
下载资源
问答
  • 扫码关注1. 写在前面在往期文章不怕一亿,就怕一分:让我们从小数位数说起里,我们...其中有一段 VBA 代码,今天我们就来讲一讲这段代码,算是我们后续 VBA 之路的一个起点。2. 原始代码Sub cmdRound() Dim Rng As...
    扫码关注
    ac52763887687a4da2653df0474a55f5.png

    1. 写在前面

    在往期文章 不怕一亿,就怕一分:让我们从小数位数说起 里,我们提到了在适当的时候要主要保留小数位数。在往期文章
    如何在 Excel 功能区增加自定义的功能 里,我们创建了一个快捷使用 Round 公式的方法。其中有一段 VBA 代码,今天我们就来讲一讲这段代码,算是我们后续 VBA 之路的一个起点。

    2. 原始代码

    Sub cmdRound()    Dim Rng As Range        For Each Rng In Application.Selection        If (IsNumeric(Rng)) And (Rng <> "") Then            If Left(Rng.Formula, 1) = "=" Then                Rng.Value = "=Round(" & Mid(Rng.Formula, 2) & ",2)"            Else                Rng.Value = Round(Rng.Value, 2)            End If        End If    NextEnd Sub

    3. 代码讲解

    其实这段代码并不适合作为初学者的示例。按照编程界的惯例,都是先输出一个“Hello World!”作为开始的。而且里面没有具体单元格的引用,还用到了一大堆内置函数...

    不过,这丝毫不影响我们开启学习之路!

    3.1 子过程

    第1行 Sub cmdRound() 定义了一个子过程,其中 cmdRound 是过程名称,自己怎么开心怎么定义(呃。。。其实也不是,是有命名规则的,不过现在可以不管,之后会专门留一篇来说名称的事)

    VBA 程序包含子过程、函数过程和属性过程,其中子过程最常见。

    上面的例子,形式上最简单的子过程定义,这条语句,就叫过程声明语句。

    整个代码的最后一行 End Sub 与过程声明语句对应,用来结束这个子过程。这个过程的全部代码都放在这两条语句之间。

    VBA 中有很多语句都是这种有头有尾的形式。

    3.2 定义变量

    第2行 Dim Rng As Range 是变量定义语句。

    变量代表了未知数,可以在代码运行过程中任意修改所代表的值。

    在 VBA 中,变量包括数据变量、对象变量、数组变量。三种变量都是经常使用的。

    例子中,我们定义的是一个对象变量。

    • Dim 是变量声明语句。

    • Rng 是我们定义的变量名称。

    • as 用来定义这个变量的数据类型。

    • Range 用来指定这个变量的数据类型是 Range,实际上是个对象类型,代表单元格。

    类似的,我们可以这样定义变量:

    Dim i as Inteer ' 定义一个整型变量 iDim str as String ' 定义一个字符串变量 strDim x ' 定义一个没有指定数据类型的变量 x

    3.3 循环语句

    语句

    For Each ... In ...
    ...Next

    构成了一组循环语句。

    在例子中的 For 语句是 For Each Rng In Application.Selection,翻译成人话就是“对于选中的单元格中的每一个单元格”。

    • For Each a In b 就是说在 b 中的每一个 a

    • Application.Selection 就是选中的单元格。其中 Application 代表应用程序,也就是 Excel 软件;Selection 是 Application 的一个属性,代表活动工作表上当前选定的对象(不一定是单元格)。. 这个符号代表一种从属关系,说明后者是前者的属性。

    • Rng 就是我们自己定义的变量,前面说过变量类型是单元格。在这个语句中,就是把选中的单元格的每一个循环赋值给 Rng

    刚提到的什么“属性”什么的,大可不必纠结,之后会详谈。

    For 语句的作用,实际上就是从一个集合中(这里是一堆选中的单元格)一个一个的拿出来,赋值给一个变量(这里是Rng),然后让后面的语句去使用这个变量。

    使用完之后,就到了 Next 语句。作用是告诉 For 语句,刚才的变量用完了,该给下一个了。于是乎,又开始从 For 语句开始。这就是一个循环。

    在 VBA 中,循环语句还有其他几种,之后需要的时候我们再谈。

    大家可能都听过高斯十岁的时候就快速计算出了从 1 加到 100的值。如果使用 VBA 该怎么计算呢?就是这样:

    Sub 累加()Dim result as IntegerDim i as IntegerFor i = 1 To 100
    result = result + iNext i
    MsgBox resultEnd Sub

    上面这段代码注意点主要包括:

    • 过程名定义成“累加”,也就是说,过程名可以是中文。不过这只是举例,实际不建议使用中文。

    • For 语句不再是 For Each,这一句的意思就是说,从 1 到 100,逐渐让 i 等于每一个值;

    • 定义的变量 result 等于自己加上 i,下次再循环的时候又把自己加上 i,通过这个循环,实现把 1 到 100 逐渐都加到 result 中。

    • 语句 MsgBos 是个弹窗,把结果在弹窗中显示出来。

    3.4 条件判断语句

    我们经常在程序中需要判断,某个情况(如变量)是不是满足某个条件,如果满足,做什么,如果不满足,做什么。

    条件判断语句主要是 IF 语句和 Select Case 语句。今天我们说 IF 语句。

    IF 语句也有两种使用方式,一种是单行代码,一种是多行代码。显然我们更多用到的是多行代码。大概结构是:

    IF Condition Then
    [statements]
    [Else
    [elsestatements]]End IF

    上面的 Condition 代表条件。在我们的例子中,第一次使用 IF 语句的条件是 (IsNumeric(Rng)) And (Rng <> ""),意思是 Rng 是一个数字并且不是空值;第二次的条件是 Left(Rng.Formula, 1) = "=",意思是 Rng 的属性 Formula(代表单元格的公式内容)的第一个字符是 =。如果条件成立,也就是说结果为真,就执行 statements 语句,否则如果 IF 语句中有 Else 则执行 elsestatements 语句,否则语句执行完毕。

    例子中第一次使用 IF 语句的条件,是判断单元格的结果是不是一个数值,如果是数值,结果为真,才能做小数保留的计算。结果为真的语句是一个完整的 IF 语句,也就是第二次条件判断。后面就是 End IF 语句,也就是说,如果判断结果为假,不做处理,语句结束。

    第二次使用 IF 语句的条件判断的内容是单元格的内容的第一个字符是不是等号。如果是等号,说明是公式,结果为真,否则说明单元格是一个数值,结果为假。

    条件为真的语句是:Rng.Value = "=Round(" & Mid(Rng.Formula, 2) & ",2)"
    我们从里往外说。

    • Rng.Formula ,前面说过,代表单元格的公式的内容,比如说可能是 =SUM(A1:A6);

    • Mid(Rng.Formula, 2),就是把这个公式内容从第二个字符开始截取到最后,就成了 SUM(A1:A6)

    • & 用来连接两个字符串,比如 a & b 就是 ab

    • 现在上面的语句就相当于 Rng.Value = "=Round(SUM(A1:A6),2)"

    • = 后面的部分 "=Round(SUM(A1:A6),2)",双引号说明这是一个字符串,里面的部分,就是大家都熟悉的 Round 公式了。也就是说,到现在为止,我们把单元格里原来的公式外面嵌套了一个 Round 公式,保留了两位小数。

    • = 前面的部分,是 Rng.Value,就是说单元格的值。我们把单元格的值改成了我们处理后的嵌套了 Round 的公式,这样单元格还是使用公式计算,但结果已经是保留的两位小数的了。

    条件为假的语句是:Rng.Value = Round(Rng.Value, 2)
    条件为假,对比面前的分析,这个就很容易了,注意点是:

    • 这次等号后面部分没有双引号,也就是说,结果不再是字符串,而是直接计算数值。

    • 这里的 Round 和前面的 Round 实际不是一个东西。前面的代表了 Excel 公式里的 Round 公式。这里的 Round 是 VBA 中的一个函数。

    4. 总结

    好了,整段代码讲解完毕。现在才发现确实不适合作为初学者的示例,因为写了这么长......不过,如果你能看到这里,恭喜你,你已经可以面对后续的学习了,因为这个起步就不是太简单。


    往期

    不怕一亿,就怕一分:让我们从小数位数说起
    如何在 Excel 功能区增加自定义的功能
    规划 Excel 表结构,让数据处理更方便


    扫码关注
    ac52763887687a4da2653df0474a55f5.png

    展开全文
  • 教师:根据除法的意义,我们知道此题应该用除法进行计算,由题意我们可以列式为: 7.98÷4.2=(教师板书) 教师:我们学过小数除以整数的除法,大家应该看到这里的除数是小数,那么,除数是小数的除法怎样计算呢? 学生分组...

    37a70e69da3bb8fc591142d30b07c1aa.gif

    视频微课

    0f687cda4fd7a9708e50e81bae944863.png

    6dba564a82a5569b6169b7d7799fbbb2.png

    同步练习

    1.在(  )里填上合适的数。

    0.988÷0.13=(    )÷13

    1.862÷2.6=(    )÷26

    9.8÷1.2=(    )÷12

    2.用竖式计算。(保留两位小数)

    4.75÷1.9=   3.952÷0.76=

    3.妈妈买了一些苹果,用了24.38元。如果每千克苹果4.6元,妈妈买了多少千克苹果?

    参考答案

    1.98.8  18.62   98 

    2.2.5   5.2

    3.5.3千克

    教学设计

    小数除以小数 教材第69页的内容及练习十三第1~8题。1.掌握小数除以小数、整数除以小数的计算方法,并能正确地计算。2.通过把除数是小数的除法转化成除数是整数的除法,渗透转化的思想。3.进一步掌握小数除法中商的小数位数的确定方法。知道被除数的小数位数不够时要用0补足。1.掌握小数除以小数的计算方法,能正确进行计算。2.正确掌握小数除以小数中商的小数位数的确定方法。投影仪,课件。在下面的括号里填上合适的数。36÷4=(36÷10)÷(4÷10)=()÷0.43.6÷0.4=(3.6×10)÷(0.4×10)=()÷40.81÷0.9=()÷96.6÷0.2=()÷20.78÷0.03=()÷3         0.084÷0.07=()÷71.导入例题。教师:下班后,妈妈去菜市场买鸡蛋,让我们一起来看看她实际购买的情况。(出示教材第69页例10的示意图)鸡蛋的市场价格是每千克4.2,妈妈买鸡蛋用去7.98,妈妈买了多少千克鸡蛋?2.讨论分析。教师:根据除法的意义,我们知道此题应该用除法进行计算,由题意我们可以列式为:7.98÷4.2=(教师板书)教师:我们学过小数除以整数的除法,大家应该看到这里的除数是小数,那么,除数是小数的除法怎样计算呢?学生分组讨论,在小组里交流,教师在学生讨论的过程中加以引导,将学生的思路引到“把除数变成整数来计算”上来,使学生想到已经学过的小数除以整数,找到转化的方向。学生已经掌握了商不变的性质和移动小数点的知识,能够进行把7.98÷4.2变成79.8÷42的推理活动。(先划去4.2的小数点,把它变成整数;再把7.98的小数点向右移动一位,划去原来的小数点,点出移动后的小数点)转化后的除法让学生完成,要注意商的小数点必须与被除数里移动后的小数点对齐。板书:

    259f09368fa8977c206e7488c4a64898.png

    7.98÷4.2=1.9(千克):妈妈买了1.9千克鸡蛋。3.思考小结。让学生围绕“怎样把除数是小数的除法转化成除数是整数的除法”这个问题充分讨论与交流。小结算法:除数是小数的除法,先转化成除数是整数的除法,再计算,转化的依据是商不变的性质。

    译林版英语

    01一上英语全册预习、跟读汇总(译林版)

    02二上英语全册预习、跟读汇总(译林版)

    03三上英语全册预习、跟读汇总(译林版)

    04四上英语全册预习、跟读汇总(译林版)

    05五上英语全册预习、跟读汇总(译林版)

    06六上英语全册预习、跟读汇总(译林版)

    一到六上英语全册预习、跟读汇总(译林版)

    声明:本公众号尊重原创,素材来源于网络,好的内容值得分享,如有侵权请联系删除!视频均引用自于腾讯视频能公开引用的视频。

    0a31d98f236ac0bb8c845a323cb975c5.png

    07f7692c8286c41c42796b3144b9c2ad.png

    点个在看吧! 2f648a113537c633a642e550ee1bf157.gif

    展开全文
  • 大家好,今日推出常用“积木”过程案例分享第307期,今日内容是利用字典,利用VBA计算除以7余数是5的数。提供给大家的这些内容是我多年经验的记录,来源于我多年的实践。大家在学习VBA的时候,可以把这些代码块作为...

    f756e4857f1cb5c9a05ada218faab510.png

    大家好,今日推出常用“积木”过程案例分享第307期,今日内容是利用字典,利用VBA计算除以7余数是5的数。提供给大家的这些内容是我多年经验的记录,来源于我多年的实践。大家在学习VBA的时候,可以把这些代码块作为一块块的积木对待,平时积累,用时拿来修正、组合。这就是我的“积木编程”的思想,这些讲解就是我推出的“积木”方案,希望大家加以利用。最近代码多是出自我的第三套教程”VBA数组与字典解决方案”。

    435af83bdb91a5550541ecd2755392b5.png

    Sub mynzsz_74()

    Sheets("74").Select

    Set mydic = CreateObject("Scripting.Dictionary")

    For i = 1 To 100

    mydic.Add i & IIf(i Mod 7 = 5, "@", ""), ""

    Next

    [a:a].ClearContents

    [a1] = "除以7余5的数"

    myarr = WorksheetFunction.Transpose(Filter(mydic.Keys, "@"))

    [a2].Resize(UBound(myarr), 1) = myarr

    [a:a].Replace "@", ""

    Set mydic = Nothing

    MsgBox "ok!"

    End Sub

    代码讲解:

    1)上述代码,首先在1到100的数据内建立一个循环,在循环的过程中,对每个数进行计算,计算的时候用MOD,当符合我们要求的数据,我们在后面加上标识@,放入字典中。循环结束后提取字典键中含有标识@的数据,在回填数据的时候将标识去掉。

    2) For i = 1 To 100

    mydic.Add i & IIf(i Mod 7 = 5, "@", ""), "" '注意IIF的用法,类似于工作表函数的IF。符合条件的值做个标识

    Next

    上述代码实现了给字典的赋值,mydic.Add i & IIf(i Mod 7 = 5, "@", ""), ""

    在代码中我给出了注释:注意IIF的用法,类似于工作表函数的IF。符合条件的值做个标识

    IIf(i Mod 7 = 5, "@", ""),当i Mod 7 = 5成立时这个值为"@",否则为空。

    3) '回填数据

    myarr = WorksheetFunction.Transpose(Filter(mydic.Keys, "@"))

    上述代码实现了数据的回填,回填的时候用Filter(mydic.Keys, "@")提取其中有"@"标识的数据。

    4) '替换去掉标识

    [a:a].Replace "@", ""

    上述语句将数组中的"@"替换为""。

    6b887e5d9489b6b98b29b21ba63c5393.png

    分享成果,随喜正能量

    展开全文
  • VBA/VB/EXCEL 除法和整除

    千次阅读 2016-07-07 10:11:33
    最近公司一个项目中需要使用EXCEL生成EEPROM的烧录数据,之前的工程师一般是通过EXCEL VBA宏生成可在WAVE6000里编译的.asm文件,再通过WAVE6000编译生成hex文件,然后通过上位机解析hex文件再通过通讯烧录到EEPROM。...
    最近公司一个项目中需要使用EXCEL生成EEPROM的烧录数据,之前的工程师一般是通过EXCEL VBA宏生成可在WAVE6000里编译的.asm文件,再通过WAVE6000编译生成hex文件,然后通过上位机解析hex文件再通过通讯烧录到EEPROM。我现在想直接通过EXCEL生成hex文件,但使用VBA时发现生成的hex文件部分行的Checksum值比正确值小1,百思不得解。后来发现使用VBA语法计算地址高字节和低字节时“/”做除法有问题。实际应该使用“\”整除。坑爹的VB!!!
    
    展开全文
  • 大家好,我是知了。...建立链接—在VBA中使用ADO的方式有两种:「引用」和「创建」。也可以叫做:「前期绑定」和「后期绑定」。还可以叫做:「静态绑定」和「动态绑定」……1.引用法/前期绑定/静态绑定引用...
  • VBA算术运算符

    2019-09-28 00:14:27
    以下是VBA支持算术运算符。 假设变量A=5,变量B=10,那么 - 运算符描述示例 + 两个操作数相加 A + B = 15 - 两个操作数相减 A - B = -5 ...模运算符,整数除法后的余数 B % A = ...
  • VBA_Challenge-源码

    2021-03-29 07:41:56
    问题在于,当年开盘价等于零,并且不会降低操作速度,因此由于除法操作不能乘以零,所以它会通过工作表的3/4和溢出错误。 幸运的是,我能够使用and语句来完成除法操作,从而使脚本可以运行而不会出现错误,并且...
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧60 使用VBA自动生成图表 12 技巧61 使用独立窗口显示图表 12 技巧62 导出工作表中的图表 12 技巧63 多图表制作 12 第5章 Application对象 12 技巧64 取得Excel版本信息 12 技巧65 取得当前用户名称 12 技巧66 ...
  • VBA编程技巧大全

    2013-08-05 09:03:19
    VBA常用技巧 目录 VBA常用技巧 1 第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 13 1-6 使用...
  • VBA基础1-循坏

    2020-02-25 15:02:59
    除法 \整除 ?8\16 0 /除 ?8/16 0.5 逻辑运算符 运算符 例句 结果 Not 非 ?not true false and 与 ?True and false false xor 异或 1 xor 0 1 or 或 ?true or false True eqv 相等 imp ...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
     11.2.3 隐藏选区之外的区域  11.2.4 同步工作表  11.3 VBA技巧  11.3.1 切换布尔类型的属性值  11.3.2 确定打印页面的数量  11.3.3 显示日期和时间  11.3.4 获得字体列表  11.3.5 对数组进行排序  ...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
    中文版Excel.2007高级VBA编程宝典 2/2 ... 11.2.3 隐藏选区之外的区域  11.2.4 同步工作表  11.3 VBA技巧  11.3.1 切换布尔类型的属性值  11.3.2 确定打印页面的数量  11.3.3 显示日期和时间  11.3.4 获得字体...
  • 在Excel中我们经常需要对输入的表格内容添加边框,一般的操作步骤是,先输入内容,再设置边框。...就如同下图这样:有2种基本方法可以实现上述效果,一种是利用条件格式,一种是利用VBA代码。一、条件格式首先全...
  • 今天做延时显示的时候,用到了时间的运算 总结下时间做加减乘除的运算规则和意义 看起来时间只适合加减,不适合乘除 时间的加法:直接加,... 时间的除法:只有个除法的意义,得出的数就是double相除 Sub xxx1()...
  • 在Excel中我们经常需要对输入的表格内容添加边框,一般的操作步骤是,先输入内容,再设置边框。...就如同下图这样:有2种基本方法可以实现上述效果,一种是利用条件格式,一种是利用VBA代码。一、条件格式首先全...
  • 2020-10-19

    2020-10-19 21:19:16
    请问vba除法运算使显示结果的那个单元格保留两位小数怎么写代码,谢谢!
  • ppt文字提取转word

    2020-04-30 16:30:42
    把PPT转Word有多种方法,一种为复制,第二种为发送,第三种为中间转换,第四种为用宏VBA快速转换发送外,其它三种方法只能转换文字,不能转换背景图片;而第一四种方法不能保留原格式,第二三种能保留...
  • 关注@悟禅禅,为您解决#Excel#和#vba#的难题余数——整数除法中被除数未被除尽部分。人工计算的时候比较麻烦。Excel中的“MOD()”函数只要输入被除数与除数就可以立即算出余数。比如“5 ÷ 3”,商为“1”,余数为...
  •  问题多出现在有乘法也许除法或许其它发作高精度小数的时分,这类错处应该是Oracle和vba里的数据精密度不一致罗致的,Oracle里的数据精密度为38位,而微软VB ADO系统的精密度最高唯其如此支持28位的精密度,招致...
  • 问题多出现在有乘法也许除法或许其它发作高精度小数的时分,这类错处应该是Oracle和vba里的数据精密度不一致罗致的,Oracle里的数据精密度为38位,而微软VB ADO系统的精密度最高唯其如此支持28位的精密度,招致衔接...
  • 針對小型數據庫的管理,Microsoft Access軟件是...在Microsoft Access中,建立下拉式選單有兩個方式,一為利用SQL語查詢既有資料並結合VBA的filter函式,二為自行輸入資料名稱於資料來源中並結合VBA的filter函式,...
  • 我们在之前的讲解中讲过利用字典模拟报数游戏的过程,今日我们讲解一下利用字典求一下单纯除法的实例:利用字典求出100以内除以7后,余数是5的数。实例,如下面的截图,要把100以内除以7后,余数是5的数...
  • 自己的第一个数据透视表.xls2.1轻松改变数据透视表的整体布局.xls2.2使用...快速改变行字段的数据项排列顺序.xls2.11按指定规则调整部门字段中的数据项顺序.xls2.12以大纲形式显示数据项目.xls2.13在每项分类汇...
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 IsArray 函数 返回 Boolean 值,表示变量是否为数组。 IsDate 函数 返回 Boolean 值,表示表达式是否可以转换为日期。 ...
  • vb Script参考文档

    2009-07-28 22:13:02
    整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 IsArray 函数 返回 Boolean 值,表示变量是否为数组。 IsDate 函数 返回 Boolean 值,表示表达式是否可以转换为日期。 ...
  • VBSCRIP5 -ASP用法详解

    2010-09-23 17:15:46
    整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 IsArray 函数 返回 Boolean 值,表示变量是否为数组。 IsDate 函数 返回 Boolean 值,表示表达式是否可以转换为日期。 ...
  • 整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 IsArray 函数 返回 Boolean 值,表示变量是否为数组。 IsDate 函数 返回 Boolean 值,表示表达式是否可以转换为日期。 ...
  • VBScript 语言参考

    2008-10-07 21:30:05
    整数除法运算符(\) 两数相除,返回的商取其整数部分。 Is 运算符 比较两个对象引用变量。 IsArray 函数 返回 Boolean 值,表示变量是否为数组。 IsDate 函数 返回 Boolean 值,表示表达式是否可以转换为日期。 ...
  • 5.3.8 提取字符串中第一个词以外的所有词 5.3.9 提取名字的名、中间名和姓 5.3.10 删除名字中的称谓 5.3.11 计算单元格中词的数量 5.4 自定义VBA文本函数  第6章 处理Et期和时间 6.1 Excel如何处理日期和...

空空如也

空空如也

1 2
收藏数 31
精华内容 12
关键字:

vba除法