青水蛙鸣吧 关注:5贴子:149
  • 20回复贴,共1

【Excel】vba学习记录

只看楼主收藏回复

Range.value与Range.text的区别
在a1单元格输入一个10位数,把列宽缩小到标准列宽的一半,呈下图样式

输入代码
sub 测试()
debug.print [a1].value,[a1].text
end sub
在vbe窗口按ctrl+g键,调出立即窗口
按f8/f5运行上述代码
得出

综上所述
Range.value 为单元格本身的值(即编辑栏显示的内容,如果是公式,.value=f(x)的结果
Range.text 为单元格显示出来的内容。即我们看到的内容。
I


IP属地:上海1楼2013-10-08 10:01回复
    VBE窗口
    工具菜单--》选项,编辑器格式 选项卡,调出下图设置关键字格式,可使代码更加易读

    I


    IP属地:上海2楼2013-10-08 10:05
    回复
      2025-07-26 03:38:20
      广告
      不感兴趣
      开通SVIP免广告
      数据类型
      dim x%,y&,z as byte
      x=5.76:y=5.21,z=4.35
      msgbox join(array(x,y,z),"+")
      '6+5+4
      由此可见:Integer,long,byte数据类型先定义后,在后续过程基本可不用Int


      IP属地:上海3楼2013-10-09 10:45
      回复
        \ 运算符
        用来对两个数作除法并返回一个整数。
        result = number1\number2
        \运算符的语法具有以下几个部分:
        部分 描述
        result 必需的;任何数值变量。
        number1 必需的;任何数值表达式。
        number2 必需的;任何数值表达式。
        说明
        在进行除法运算之前,数值表达式通过舍去小数部分转换成 Byte、Integer 或 Long表达式
        通常,无论 result 是不是整数,result 的数据类型都是 Byte、Byte 变体、Integer、Integer 变体、Long 或 Long 变体。任何小数部分都被删除。但是,如果任何一个表达式是 Null,则 result 为 Null。如果一个表达式是 Empty,则作为0 处理。
        Dim MyValue
        MyValue = 11 \ 4 ' 返回 2。
        MyValue = 9 \ 3 ' 返回 3。
        MyValue = 100 \ 3 ' 返回 33。
        I


        IP属地:上海4楼2013-10-09 10:56
        回复
          比较运算时需注意的规则



          IP属地:上海5楼2013-10-09 11:00
          回复
            两个一维数组进行比较,生成第三个数组:
            arr1,arr2,arr3
            要找出arr1中存在,但arr2中不存在的数据,并生成数组arr3
            (不用字典的另一种方法)
            Function arr3(arr1(), arr2())
            Dim i As Long
            Dim arrRst As String
            If Not (IsArray(aar1) And IsArray(arr2)) Then
            MsgBox "Joke!"
            Exit Function
            End If
            '判断两个数组是否初始化。
            arrRst = "@" & Join(arr1, "@")
            For i = LBound(arr2) To UBound(aar2)
            arrRst = Replace(arrRst, "@" & arr2(i), "")
            Next i
            '将arr1合并成字符串,用符号@进行区分间隔,循环数组arr2,替换arr1,arr2中的相同内容
            If Len(arrRst) = 0 Then
            MsgBox "No Data Find!"
            Exit Function
            End If
            '如果两个数组完全相同,len()=0,则退出
            arrRst = Right(arrRst, Len(arrRst) - 1)
            If InStr(arrRst, "@") = 0 Then
            arr3 = Array(arrRst)
            Else
            arr3 = Split(arrRst, "@")
            End If
            '判断字符串长度及item.count,拆分成数组并赋值给arr3
            End FunctionI


            IP属地:上海6楼2013-10-09 11:34
            回复
              青蛙兄


              8楼2014-01-15 13:27
              收起回复
                @yctc688
                我学习VBA的过程没什么可取之处。属于工作逼迫及一丝丝个人爱好,才坚持下来的,所有的经验不过是边做边学,遇到不会的就百度,唯一需要掌握的就是怎么提问,或者说怎么总结关键词。


                IP属地:上海9楼2014-01-22 22:06
                收起回复
                  2025-07-26 03:32:20
                  广告
                  不感兴趣
                  开通SVIP免广告
                  比如变量、循环(for next ,for each, do loop等),判断( if then,iif ,select case ),数组,字典等基础的东西。再深层次的因为没有需要,所以就搁置了。
                  如果你是出于对VB的爱好,建议还是买本书连看边做吧。基础牢一点,以后可能会更轻松一点


                  IP属地:上海10楼2014-01-22 23:35
                  收起回复