精华内容
下载资源
问答
  • 通过vba中的循环和数组实现的匹配函数,可以帮助新入门的同学学习VBA程序,同时也希望各位大神指导,如何写出更简单高效的代码。
  • VBA-利用字典代替VLOOKUP

    千次阅读 2019-08-05 15:01:10
    SUB 代替VLOOKUP() Dim d, ar, br, cr, wb As Workbook Set d = CreateObject("Scripting.Dictionary") br = Worksheets("Sheet1").[A1].CurrentRegion '需要配置的数据表 ar = Worksheets("R").[A1].CurrentRe....
    SUB 代替VLOOKUP()
    方法一:
      Dim d, ar, br, cr, wb As Workbook
        Set d = CreateObject("Scripting.Dictionary")
        br = Worksheets("Sheet1").[A1].CurrentRegion  '需要配置的数据表
        ar = Worksheets("R").[A1].CurrentRegion  '目标表
       ReDim CRR(1 To UBound(br) - 1, 1 To 1) '配置表的循环列数
        For I = 2 To UBound(ar)      '从目标表需要关联的字段
            d(ar(I, 4)) = ar(I, 6)
        Next
        For I = 2 To UBound(br)
            CRR(I - 1, 1) = d(br(I, 4))  '将CRR写到BRR表中
        Next
        Worksheets("Sheet1").Range("EJ2").Resize(UBound(br), 1) = CRR '匹配
    
    
    方法二:
    Dim arr, d As Object, CRR '
     Set d = CreateObject("scripting.dictionary")    
    arr = Worksheets("基础信息表").[a1].CurrentRegion  
    brr = Worksheets("统计结果").[a1].CurrentRegion
    For i = 2 To UBound(arr)
      d(arr(i, 1)) = arr(i, 6)
      Next
    
    ReDim CRR(2 To UBound(brr), 1 To 1)  '匹配目标表内容
    For J = 2 To UBound(brr)
       CRR(J, 1) = d(brr(J, 2))'''在字典里查找BRR值并返回相应值
       Next
       
       Worksheets("统计结果").[C2].Resize(UBound(CRR) - 1, 1) = CRR
      
      
        Set d = Nothing
      
    方法三:多列
    Dim arr, d As Object, CRR '数组brr用来存放求和数据    '创建字典
     Set d = CreateObject("scripting.dictionary")    '数组赋值
    arr = Worksheets("基础信息表").[a1].CurrentRegion    '重置数组brr大小
    brr = Worksheets("统计结果").[a1].CurrentRegion
    
    For i = 2 To UBound(arr)
      d(arr(i, 1)) = arr(i, 6) & "," & arr(i, 7)
      Next
    
    ReDim CRR(2 To UBound(brr), 1 To 1)
    ReDim DRR(2 To UBound(brr), 1 To 1)
    For J = 2 To UBound(brr)
       If d(brr(J, 2)) <> "" Then
       CRR(J, 1) = Split(d(brr(J, 2)), ",")(0) '在BRR里查找到此名,并返回对应值
       DRR(J, 1) = Split(d(brr(J, 2)), ",")(1)
       Else
       CRR(J, 1) = ""
       DRR(J, 1) = ""
       End If
       Next
       
       Worksheets("统计结果").[C2].Resize(UBound(CRR) - 1, 1) = CRR
       Worksheets("统计结果").[D2].Resize(UBound(CRR) - 1, 1) = DRR
      
      
        Set d = Nothing
    
    END SUB
    
    展开全文
  • vba实现vlookup

    2014-05-17 10:49:49
    vba实现vlookup功能,vlookup在查找引用很多数据时会很慢。vba可以实现快速查找
  • VBA listview的用法

    2013-08-05 09:12:29
    VBA listview的用法
  • Excel VBA 代替Sumproduct实现多条件求和

    万次阅读 2013-08-26 15:11:57
    因为用函数公式,如果数据量大的话,会影响效率,而且会增加文件本身大小,所以想用vba代码替代。 以下代码用来实现函数公式sumproduct的功能,实现多条件求和。 Private Sub 多条件求和()  Dim d, ar, arr, s$, t...

    因为用函数公式,如果数据量大的话,会影响效率,而且会增加文件本身大小,所以想用vba代码替代。

    以下代码用来实现函数公式sumproduct的功能,实现多条件求和。


    Private Sub 多条件求和()
       Dim d, ar, arr, s$, t$, i&
       Set d = CreateObject("Scripting.Dictionary")
       ar = Range("b2:m" & [b65536].End(3).Row)
       arr = Sheet3.Range("b2", Sheet3.[j65536].End(3)).Value
      
       For i = 1 To UBound(arr)
          t = Join(Application.Index(Application.Index(arr, i, 0), Array(1, 2, 3, 4)), ",")
          d(t) = d(t) + arr(i, 8)
       Next
      
       For i = 1 To UBound(ar)
          s = Join(Application.Index(Application.Index(ar, i, 0), Array(1, 2, 3, 4)), ",")
          If d.exists(s) Then ar(i, 11) = d(s) Else ar(i, 11) = ""
       Next
    [b2].Resize(UBound(ar), UBound(ar, 2)) = ar
         
    Set d = Nothing
      
      Call sum2

    End Sub

    Sub sum2()
    arr = Range("f2:k" & [f65536].End(3).Row)
    For i = 1 To UBound(arr)
      t1 = arr(i, 1) * arr(i, 2)
      t2 = (arr(i, 1) - arr(i, 4)) * arr(i, 2) + arr(i, 3) * arr(i, 4)
      If arr(i, 4) = "" Then arr(i, 6) = t1 Else arr(i, 6) = t2
    Next
    [f2].Resize(UBound(arr), UBound(arr, 2)) = arr
    End Sub

    展开全文
  • Excel的VBA函数,可根据条件返回值数组。 Agruments:valrange-要在数组中返回的值。 测试范围(1到4)-要在条件下测试的值的范围。 第一个测试范围是必须的,其他范围是可选的。 第一个条件是强制性的,其他条件...
  • 转自:http://www.pinlue.com/article/2020/05/1810/3210525565219.html
    展开全文
  • 参数: Code:查询的内容 Zone:查询的区域 ColumnIndex:指定返回列的序号 Splitor:行分隔符 '连接字符串,类似PHONETIC,但是可以添加分隔符 FunctionConnectString(ZoneAsrange,SplitorAsString) ...

    参数:

      • Code :查询的内容
      1. Zone :查询的区域
      2. ColumnIndex :指定返回列的序号
      3. Splitor :行分隔符


    '连接字符串,类似PHONETIC,但是可以添加分隔符
    Function ConnectString(Zone As range, Splitor As String)
        Dim columnCount As Long, rowsCount As Long
        Dim resultStr As String
        Dim i As Integer, j As Integer
        columnCount = Zone.Columns.Count
        rowsCount = Zone.Rows.Count
        '默认分隔符为 ;
        If Splitor = "" Then
            Splitor = ";"
        End If
        For i = 1 To columnCount Step 1
            For j = 1 To rowsCount Step 1
                If Zone.Cells(j, i) <> "" Then
                    '第一个匹配项,不添加分隔符
                    If resultStr <> "" Then
                        resultStr = resultStr & Splitor
                    End If
                    
                    resultStr = resultStr & Zone.Cells(j, i)
                End If
            Next
        Next
        ConnectString = resultStr
    End Function

    展开全文
  • 有一个功能是使用word离线版的程序(带宏的word,使用VBA编写的,word中含有表单内容),在word中填写内容,上传到网页中,后台解析数据然后导入数据库,但是维护起来比较麻烦(当然是因为我并不怎么了解VB这门语言...
  • 1 使用数组公式 1.0 感想,这些公式都需要太多小技巧了,很麻烦 公式这么复杂, 用了很多... 不实用了,实用性不如用 透视表,或VBA 1.1 公式从内层逐层解析 IFERROR(INDEX($A$2:$A$14,SMALL(IF($C$2:$C$...
  • VBA和Python都可以处理Excel,VBA和Python各有什么优势?有传言说,微软会使用Python来替代VBA处理Excel,真的会替代么?在知乎上看到这篇文章,我觉得分析得挺对的,特转载一下,内容有所删减。...
  • VBA用字典来替代函数的Vlookup

    万次阅读 2010-08-07 11:05:00
    Excel里有Vlookup函数,查找匹配数据非常方便,在VBA里,也可以用worksheetfunction.vlookup方法来调用,今天我介绍一个另一种使用字典(dictionary)+数组的方法,速度也非常快。   数据源图片:...
  • vba rnd 介绍 VBA Rnd()函数通常用于生成“随机”数字。 当然,您无法使用任何编程算法生成真正的随机数。 但是某些伪随机数生成器算法要比其他算法好。 本文讨论了为什么本机PRNG不好的原因,以及在真正需要...
  • A Script for Applications: 给word写的 目的是去掉一个文档中一行中有且只有2个或者1个数字的行: Sub ListParagraphs()  Dim p As Paragraph  For Each p In Active
  • 用html VBA 编制的对话提示框,用来代替VBA中的msgbox函数.
  • VBA dictionary的用法

    千次阅读 2019-10-10 21:35:04
    1.VBA中创建字典:用的是WSH引用。 dictionary是保存数据键和项目对的对象。 下面代码示范如何创建 Dictionary 对象: Dim myd As Object Set myd = CreateObject("Scripting.Dictionary") d.Add "a", "Athens...
  • 引用该文章内容,个人收藏,有兴趣可参考。 https://zhuanlan.zhihu.com/p/340323739
  • Excel VBA代码荟萃

    2008-07-10 12:47:42
    这里,为Excel爱好者以及经常用Excel处理事务的网友,提供了用Excel...如果立志成为专业的Office Developer,那么疯狂的使用VBA代替Excel现有功能去完成任务是学习编程之路上的一个有效过程,但也不能走火入魔。
  • VBA设置数据多少有些麻烦,不如把代码全部写在python里面。 VBA设置的方法可以看我的博客,VBA设置图表坐标轴最大最小范围 该设置方法用python解决如下: import xlwings as xw file = 'test/tt.xlsx' app = ...
  • VBA基础知识

    千次阅读 2019-11-12 14:18:36
    VBA入门学习笔记本关键词: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符号...
  • 1 EXCEL可以用 百分数来直接运算,但是VBA里不允许 2VBA里无法用%这种数据类型来计算 VBA里没有 %百分数这种数据类型 VBA里无法用%这种数据类型,来计算 如果在VBE里输入 5% 会自动变成 5 VBA里最多可以...
  • Excel VBA编程

    万次阅读 多人点赞 2019-04-11 16:45:51
    文章目录如何创建VBAVBA语法规则声明变量给变量赋值让变量存储的数据参与运算关于声明变量的其他知识变量的作用域特殊的变量——数组声明多维数组声明动态数组其他创建数组的方法数组函数利用UBound求数组的最大索引...
  • VBA中数组72变(随心所欲复制)

    千次阅读 2018-08-11 14:01:21
    西游记中孙悟空最神奇的本领之一就是拔根毫毛,瞬间变出无数个孙猴子。代码中的数据可谓神通广大,如何实现瞬间变身呢?其实也很简单。 Private Declare Sub CopyMemory Lib &amp;quot;kernel32&...
  • Excel 与 VBA

    2019-05-30 11:17:48
    1. 什么是VBA? Excel里的VBA(Visual Basic for Applications)是Visual Basic的一种宏语言。VBA是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,...
  • VBA自定义方法 快捷键设置

    千次阅读 2020-03-19 22:55:17
    VBA自定义方法 快捷键设置 ■前言 这两天做截图操作,录了一段宏(调整大小,图片放到最后面显示), 保存到这段代码,到个人宏工作簿中,方便以后使用。 但是,在使用的时候,不想每次执行的时候去点击执行, ...
  • 介绍了vba编程和excle对象模型的基础知识 ——介绍了VBA语言及其特征,阐明了集合、对象、属性、方法和事件的关系,并展示了如何通过对象模型将这些概念与Excle产生联系 Ⅱ 第2—27章 (使用特定对象)...
  • VBA操作TXT文档

    千次阅读 2019-05-22 17:09:49
    需求:对Systemwalker Operation Manager软件导出的文本文件进行处理,文本格式如下(敏感信息使用XX代替) NET jobnetname XX jobnetcomment XX noexecution XX holidayshift XX execattr XX job 130 ; JOB job...
  • 二 详解VBA编程是什么

    2020-07-01 23:33:29
    详解VBA编程是什么 直到 90 年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动...
  • 介绍 VBA Rnd()函数通常用于生成“随机”数字。 当然,您无法使用任何程序算法生成真正的随机数。 但是某些伪随机数生成器算法要比其他算法好。 本文讨论了为什么本机PRNG不好的原因,以及在真正需要“随机性”的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,306
精华内容 922
关键字:

vba代替