精华内容
下载资源
问答
  • VBA的运算符号

    2020-01-25 12:02:01
    VBA常用运算符 常规数学运算符: + - * / ^ 特殊数学运算符: \ 整除 mod 取余数 其他运算符: & () 比较运算符: =赋值 < > <= >= 特殊比较符: is like 逻辑运算符 : ...

     

    VBA常用运算符

    • 常规数学运算符:     +   -   *    /   ^
    • 特殊数学运算符:    \ 整除      mod 取余数 
    • 其他运算符:            &  ()  

     

    • 比较运算符:             =赋值   <  >  <= >=
    • 特殊比较符:           is   like

     

    • 逻辑运算符 :         and     or           xor     not
    • Xor同假异真  Eqv同真异假  Imp 先真后假才为真

     

    • XOR  逻辑排除。它是NOTOR运算符的组合。如果表达式中只有一个表达式的值为True,则结果为True。表示两者不同时为真,相同时为假 
    • EQV,表示两者相同是为真,不同是为假
    • imp逻辑蕴含

     

     

     

     

    Sub 计算测试()
    
    Dim arr1(30)
    
    arr1(0) = 99
    arr1(1) = 1 + 2
    arr1(2) = 2 - 1
    arr1(3) = 3 * 5
    arr1(4) = 10 / 3       '除法
    arr1(5) = 10 \ 3       '整除
    arr1(6) = 10 Mod 3     '去余数
    arr1(7) = (1 + 3) / 2
    
    
    arr1(11) = "a" & "b"
    arr1(12) = "a" + "b"     '字符串可以相加
    arr1(13) = 1 >= 2
    arr1(14) = 1 <= 2
    arr1(15) = (1 = 2)
    arr1(16) = (1 = 1)
    
    
    Dim a As Object
    Dim b As Object
    Dim c As Object
    Set a = b
    
    arr1(17) = a Is b        'is只能用于比较对象是否完全一样
    arr1(18) = Not a Is b
    arr1(19) = a Is c        '因为a,b,c 都是空对象,可以相等
    
    arr1(21) = "test1.xlsm" Like "*.xlsm"    'like 比较需要 ""之内的内容
    arr1(22) = (1 > 2) And (1 < 2)
    arr1(23) = (1 > 2) Or (1 < 2)
    
    
    arr1(30) = (1 > 2) Eqv (1 < 2)
    'arr1(31) = True Eqv True
    'arr1(32) = 1 Eqv 2
    'arr1(33) = 1 Eqv 1
    
    'arr1(34) = (1 > 2) Xor (1 < 2)
    'arr1(35) = (1 > 2) Xor (1 > 2)
    'arr1(36) = 1 Xor 2
    'arr1(37) = 1 Xor 1
    
    
    'arr1(38) = (3 > 2) Imp (5 > 2)    '逻辑包含关系
    'arr1(39) = (1 < 2) Imp (1 < 3)
    'arr1(40) = (1 < 2) Imp (1 < 2)
    
    
    
    For i = LBound(arr1) To UBound(arr1)
        Debug.Print "arr1(" & i & ")= " & arr1(i)
    Next
    
    
    End Sub
    

     

     

    运算结果

    arr1(0)= 99
    arr1(1)= 3
    arr1(2)= 1
    arr1(3)= 15
    arr1(4)= 3.33333333333333
    arr1(5)= 3
    arr1(6)= 1
    arr1(7)= 2
    arr1(8)= 
    arr1(9)= 
    arr1(10)= 
    arr1(11)= ab
    arr1(12)= ab
    arr1(13)= False
    arr1(14)= True
    arr1(15)= False
    arr1(16)= True
    arr1(17)= True
    arr1(18)= False
    arr1(19)= True
    arr1(20)= 
    arr1(21)= True
    arr1(22)= False
    arr1(23)= True
    arr1(24)= 
    arr1(25)= 
    arr1(26)= 
    arr1(27)= 
    arr1(28)= 
    arr1(29)= 
    arr1(30)= False
    

     

     

     

     

    有几个  还有问题


     

     

    他们的真值表如下 (图片转载)
    这里写图片描述

     

    展开全文
  • 二分法实现的符号表 ' 二分查找的符号表 ' 隔离索引,从1开始,数组操作从0开始 ' 这种设计隔离数组操作,只是为了方便理解,如果实际使用,可以修改为 从0开始,能节省不少操作。 Private keys() Private values...

    二分法实现的符号表

    ' 二分查找的符号表
    ' 隔离索引,从1开始,数组操作从0开始
    
    ' 这种设计隔离数组操作,只是为了方便理解,如果实际使用,可以修改为 从0开始,能节省不少操作。
    Private keys()
    
    Private values()
    
    
    Private n As Long
    
    
    ' 暂时省略辅助的增加和缩减,如有需要,参照以前的博客
    ' 基本的符号表api
    
    
    Private Sub class_initialize()
        ' 省略增加,适当加大
        ReDim keys(100)
        ReDim values(100)
    End Sub
    
    ' 把值加入符号表中,如果值为空,就删除主键
    Sub putValue(key As Variant, val As Variant)
        Dim index As Long
        
        Dim temp As Variant
        
        index = rank(key)
        
        Dim i As Long
        
        
        ' 需要考虑到相等的情况
        ' 终究是不太明白为什么index会大于n?哪种情况?
        If index <= n And index > 0 Then
            If getKeyByIndex(index) = key Then
                setValueByIndex index, val
                Exit Sub
            End If
        End If
        
        For i = n + 1 To index + 2 Step -1
            setKeyByIndex i, getKeyByIndex(i - 1)
            setValueByIndex i, getValueByIndex(i - 1)
        Next
        
        setKeyByIndex index + 1, key
        setValueByIndex index + 1, val
        
        n = n + 1
        
    End Sub
    
    ' 为了索引和数量保持对应,隔离数组操作
    
    Function less(i As Variant, j As Variant) As Boolean
        less = i < j
    End Function
    
    Function greator(i As Variant, j As Variant) As Boolean
    
        greator = i > j
    End Function
    
    Function getKeyByIndex(i As Long) As Variant
        getKeyByIndex = keys(i - 1)
    End Function
    
    Function getValueByIndex(i As Long) As Variant
        getValueByIndex = values(i - 1)
    End Function
    
    Sub setKeyByIndex(i As Long, key As Variant)
        keys(i - 1) = key
    End Sub
    
    Sub setValueByIndex(i As Long, value As Variant)
        values(i - 1) = value
    End Sub
    
    ' 获取键的值,如果键为空,就返回空
    
    Function getValue(key As Variant) As Variant
        Dim index As Long
        
        If isEmpty() Then getValue = Null: Exit Function
        
        index = rank(key)
        
        If index <= n Then
            If getKeyByIndex(index) = key Then
                getValue = getValueByIndex(index)
                Exit Function
            End If
        End If
        
        getValue = Null
        
    End Function
    
    ' 从表中删除主键
    Sub delete(key As Variant)
        Dim index As Long
        
        
    End Sub
    
    ' 主键是否存在于符号表中
    Function contains(key As Variant) As Boolean
        Dim index As Long
        
        index = rank(key)
        
        If index <= n Then
        
            If getKeyByIndex(index) = key Then contains = True: Exit Function
        
        End If
        contains = False
    End Function
    
    ' 是否为空
    Function isEmpty() As Boolean
        isEmpty = n = 0
    End Function
    
    ' 最小的主键
    Function min() As Variant
        min = getKeyByIndex(1)
    End Function
    
    
    ' 最大的主键
    Function max() As Variant
        max = getKeyByIndex(n)
    End Function
    
    ' 小于等于key的最大键
    Function floor(key As Variant) As Variant
        Dim index As Long
        
        index = rank(key)
        
        floor = getKeyByIndex(index)
    
    End Function
    
    ' 大于等于key的最小键
    Function ceiling(key As Variant) As Variant
        Dim index As Long
        
        index = rank(key)
        
        ceiling = getKeyByIndex(index + 1)
    End Function
    
    ' 小于key的数量
    Function rank(key As Variant) As Long
        Dim low As Long
        Dim high As Long
        
        low = 1
        
        high = n
        
        rank = doRank(key, low, high)
    End Function
    
    ' 实施二分查找,这种方式更加直观
    Private Function doRank(key As Variant, low As Long, high As Long) As Long
        Dim mid As Long
        
        Dim midKey As Variant
        ' high比low小,说明没有匹配的结果,只能选择合适的结果返回?high还是low是合适结果?
        ' 主要看返回,这里是以1为开始索引,所以返回的位置,刚好是等于或者小于key的最大值的个数,
        ' 当high < low 的时候,说明数组开始越界,有可能是high越界,也有可能是low越界,
        ' 这取决于上层是大于还是小于key。
        ' 如果上层是比key更大,即less(key,midKey)成立,准确位置就是low,
        ' 而因为比key大,所以需要-1才是比key小的位置,位置和个数是对应的。取low-1,即high
        ' 如果上层比key小,即greator(key,midKey)成立,准确位置就是high,
        ' 而因为比key小,所以这个位置刚好就是需要返回的位置,即个数,包括0。
        ' 而如果索引是从0开始,返回的是个数,也从0开始,返回偏大的索引刚好就是个数,因为索引+1 = 个数
        ' high + 1 = low ,所以返回low
        If high < low Then doRank = high: Exit Function
        ' 中间位置划分偏向左边,即左边更多
        mid = Int((high + low) / 2)
        
        midKey = getKeyByIndex(mid)
        
        If less(key, midKey) Then
            doRank = doRank(key, low, mid - 1)
            Exit Function
        ElseIf greator(key, midKey) Then
            doRank = doRank(key, mid + 1, high)
            Exit Function
        End If
        
        doRank = mid
    
    End Function
    
    ' 排名为key的键
    Function find(k As Long) As Variant
        find = getKeyByIndex(k)
    End Function
    
    ' 删除最小的键
    Sub deleteMin()
    
    End Sub
    
    ' 删除最大的键
    Sub deletMax()
    
    End Sub
    
    ' 数量
    Function size() As Integer
        size = n
    End Function
    
    ' 键之间的数量
    Function sizeRange(low As Variant, high As Variant)
    
    End Function
    
    ' 键之间的所有主键
    Function keysRange(low As Variant, high As Variant) As Collection
    
    End Function
    
    ' 所有主键
    Function keysAll() As Collection
    
    End Function
    
    
    
    展开全文
  • excel vba 特殊符号

    千次阅读 2013-09-30 19:20:42
    常数 值 描述 vbCr Chr(13) 回车符。 vbCrLf Chr(13)&Chr(10) 回车符与换行符。 vbLf Chr(10) 换行符。 vbTab Chr(9) 制表符
    常数    值         描述
    vbCr    Chr(13)      回车符。
    vbCrLf   Chr(13)&Chr(10)  回车符与换行符。
    vbLf    Chr(10)      换行符。
    vbTab    Chr(9)      制表符
    展开全文
  • 想通过replace替换€符号为空,但是发现VBA中无法输入该符号。 然后想通过格式变更将currency的格式变成number。但是currency格式的单元格的选择方式好像不太对。 Private Sub Fchange() ActiveSheet.Cells....
  • vba数据类型符号

    2018-08-11 10:46:00
    为什么80%的码农都做不了架构师?>>> ...
    • Integer %
    • Long &
    • Single !
    • Double #
    • String $
    • Currency @

    转载于:https://my.oschina.net/xfan/blog/1926137

    展开全文
  • Then Set x = y Else x = y End If End Sub ' 二叉树实现的符号表 Private root As node ' 把值加入符号表中,如果值为空,就删除主键 Sub putValue(key As Variant, val As Variant) Set root = doPut(root, key, ...
  • VBA基础知识

    2019-11-12 14:18:36
    VB、VBA、Microsoft office、excel、access、PowerPoint1.VBA的基本概念2 数据类型2.1 VBA基本数据类型2.2 VBA自定义的数据类型3 VBA常量3.1 VBA系统定义常量3.2 VBA固有常量3.2 VBA符号常量4 变量4.1 声明4.1 赋值5...
  • vba 实现红黑树符号

    2020-12-31 00:21:22
    Private root As RedNode Private n As Long ' 暂时省略辅助的增加和缩减,如有需要,参照以前的博客 ' 基本的符号表api Public Sub putValue(key As Variant, val As Variant) Set root = doPut(root, key, val) ...
  • 1 VBA和EXCEL使用符号常数有语法差别 1.1 语法差别 比如EXCEL里使用char(10) VBA中只能写成 chr(10) VBA的语法错误,VBE没有把第1个首字母大写就应该看出来 char(13) 是错误的 1.2 举例: chr(32) 类空格 ...
  • 基于CorelDRAW VBA的地图制图符号化程序设计
  • access中vba断行符号

    2013-09-18 13:57:17
    一般代码长的情况下,用断行" _ 符号,一般能断几行,代码里的sql语句断行多了,就提示不能在断行了 这个现象正常吗
  • 汉字转拼音取首字母 excel vba 汉字转拼音 取首字母 排除特殊符号 excel里面取汉字首字母 汉字转拼音 排除了特殊符号 非常实用
  • Layer.CreateSymbol 方法用来在图层的指定位置创建一个符号实例。 参数说明 参数 描述 ...指定放置符号的x坐标 ...原创声明:本文首发于 《CorelDRAW VBA探秘》 独立站点,请尊重文章版权。 转载请注明原...
  • 程序由我的好朋友丰哥提供!! 因为Excel不能对在单元格中的特定关键词修改字体颜色,所以本文将用“【】”来将关键词凸显,以便工作。 '这代码应放在personal.xlsb中,然后在 开发工具-宏-设置快捷键。...
  • 话不多说,今天在测试一个VBA程序,之前运行得好好的,今天增加了一个设置参数,然后运行至Dir(x,dictionary)就不行了,报:运行时错误'52'文件名或文件号错误,如下图: 然后我就反复调试,看着x的值,实际上是...
  • Selection.Range.ListFormat.RemoveNumbers
  • 1 使用在语句中的特殊符号 连接号 - 用于连接不完整的2部分,为完整的1句 冒号 :用于连接2个句子 Sub test1001a() arr1 = array(1, 2, 3, 4, 5) For Each i In arr1 Debug.Print i; Next Debug.Print End Sub Sub ...
  • Base 类型 Byte Boolean single! currency@ Double# date ## integer% long & decimal String [*10] $ Object null is noting Variant ... (...
  • 通过VBA遍历所有的sheet并在第一页创建超链接很简单,网上已经提供了很多相关的例子,我在此列举一种最简单的,直接copy即可使用,如下: Sub lianjie() Dim x As Long x = 0 For x = 1 To Sheets.Count '从第四页...
  • 这是我的第六套教程,也是VBA教程中比较高级的阶段第二节按任意符号间隔拆分字符串的函数在上一讲中,我们讲解了Split函数的基本应用,但我们很快会发现,这个函数在利用起来有一定的局限性,只能按某个字符串...
  • VBA-vba与运算符

    千次阅读 2018-11-09 19:26:08
    定义:运算符是代表VBA某种运算功能的符号 赋值运算符:= 数学运算符:&amp;(字符连接符)、+(加)、-(减)、Mod(取余)、\(整除)、*(乘)、/(除)、-(负号)、^(指数) 逻辑运算符:Not(非)、And(与)、Or(或)、Xor...
  • 大家好,我们今日讲解"VBA信息获取与处理"教程中第十四个专题"Split函数提取数据信息的深入讲解"的第三节"以多个给定符号作为间隔拆分字符串",这个专题是非常实用的知识点,希望大家能掌握利用。教程会提供配套的...
  • '匹配标点符号和汉字 End With With TextBox1 For i = 1 To Len ( . Text ) strs = Mid ( . Text , i , 1 ) If Not reg.test ( strs ) Then . Text = Replace ( . Text , ...
  • 女朋友做会计工作,平时一堆重复...于是然她转csv,但是……她导出的csv又太多了……找了个vba脚本批量转csv,并且将特殊符号去除。主要避免excel中的部分单元格里面也有逗号,导致一些意外的问题。。。 Sub SaveTo...
  • 全民一起VBA提高篇 第三回 莫让电脑猜大小 巧用符号标类型 相关知识点 'dim a&amp;amp;amp;amp; a as long 4字节 'dim a% a as integer 2字节 'dim a$ a as string 'dim a@ a as currency 8字节 货币...
  • 在windows下,调试器(比如vs, windbg)可以通过调试符号(PDB)把地址与符号名对应起来,为我们提供更可读的信息。IDA应该也支持加载PDB,通过查看IDA安装目录下的idahelp.chm(打开后搜索PDB即可找到相关说明)发现还真...

空空如也

空空如也

1 2 3 4 5 ... 15
收藏数 290
精华内容 116
关键字:

vba符号