精华内容
下载资源
问答
  • VBA 获取二维数组的行数和列数

    千次阅读 2013-01-22 13:11:00
    Dim arr As Variant ReDim arr(3, 4) Dim row As Long Dim col As Long row = UBound(arr, 1) col = UBound(arr, 2) 转载于:https://www.cnblogs.com/nchxmoon/archive/2013/01/22/2871208.html...

      Dim arr As Variant
      ReDim arr(3, 4)
        Dim row As Long
        Dim col As Long
        row = UBound(arr, 1)
        col = UBound(arr, 2)

    转载于:https://www.cnblogs.com/nchxmoon/archive/2013/01/22/2871208.html

    展开全文
  • Vba总结

    2020-01-10 15:22:29
    2、获取某一行的列数 ActiveSheet.Range("IV1").End(xlToLeft).Column 3、给某一个sheet的某一个位置写上数据 Sheets("Sheet2").Cells(i, 1).Value = value 4、获取二维数组的长度和宽度 row = U...

    首先一个去除重复的简单例子

    Sub test1()
        MsgBox Cells(2, 8).Value
        Dim i As Integer
        Dim j As Integer
        For i = 2 To 355
            For j = i + 1 To 355
                If Cells(i, 8).Value = Cells(j, 8).Value Then
                    Cells(j, 8).Value = "此项重复,已经把它删除了"
                End If
            Next
        Next
    End Sub
    

    1、获取某一列的行数

    ActiveSheet.Range("A65535").End(xlUp).Row
    

    2、获取某一行的列数

    ActiveSheet.Range("IV1").End(xlToLeft).Column
    

    3、给某一个sheet的某一个位置写上数据

    Sheets("Sheet2").Cells(i, 1).Value = value
    

    4、获取二维数组的长度和宽度

    row = UBound(arr,1)
    col = UBound(arr,2)
    

    5、动态数组的创建:

    Dim arrSheetName()
    ReDim arrSheetName(1 to value) or ReDim arrSheetName(x to y , m to n)
    

    当然了 使用redim preserve可以动态的增加数组的大小,并且不破坏之前的数据

    6、Function 返回数据
    定义一个函数

    Function func1()
    	Dim result()
    	\\todo...
    	func1 = result()
    End Function
    

    在main函数中获取数据

    Function Main()
    	result = func1()
    End Function
    

    7、将特定格式的字符串转化为日期类型

    trueTime = "2020-01-01 20:46"
    CurrentDateTimeString = Format$(Date, "yyyy-MM-dd HH:MM")
    typeTime = CDate(trueTime)
    MsgBox typeTime
    
    

    8、日期计算:
    8.1、百度/google:TimeValue用法
    8.2、百度/google:DateDiff 函数用法
    范例:

    	CurrentDateTimeString = Format$(Date, "yyyy-MM-dd HH:MM")
    	time1 = CDate(time1)
    	time2 = CDate(time2)
    	MsgBox time1
    	MsgBox time2
    	interval = DateDiff("n", time1, time2)
    	MsgBox interval
    
    展开全文
  • VBA学习笔记(一)

    2020-04-04 22:18:14
    1、获取对应表的行数和列数 表行数 = Sheets("表名").UsedRange.Rows.Count 表列数 = Sheets("表名").UsedRange.Columns.Count 2、初始化工作表的基本操作 sub 初始化() '定义一个数组并且赋值 表头数组 = ...

    VBA学习笔记

    基础代码

    本人为VBA的初学者,简单学一些代码提高工作效率,在此处记载一些自己的心得,同时也将自己简单的代码记录于此,代码简单,并且没有过多的高端用法,甚至有很多用的不当和错误的地方,有需要的人可以简单参考,如果是大神请不要笑话,毕竟我是一个野生的VBA程序员。

    1、获取对应表的行数和列数

        表行数 = Sheets("表名").UsedRange.Rows.Count
        表列数 = Sheets("表名").UsedRange.Columns.Count
    

    2、初始化工作表的基本操作

    sub 初始化()
    	'定义一个数组并且赋值
    	表头数组 = Array("id", "员工号", "姓名", "身份证号", "手机", 	"在京居住地", "上午体温", "异常情况说明", "备注", "部门名称", "公司名称", "目前是否异常、咳嗽、发热、腹泻、乏力、呼吸困难、肌肉酸痛", "员工类型", "下午体温", "提交日期")		
    	'此段代码暂时通过录制宏的方式实现,功能是选中工作表中所有行,然后删除,用来清空工作表
    	Sheets("工作表名").Select
    	Cells.Select
    	Selection.Delete Shift:=xlUp
    	Range("A1").Select	
    	'获取数组长度
    	表头数组长度 = UBound(首页表头数组) - LBound(首页表头数组) + 1    
    	'通过循环将表头内容写入对应工作表的首行,以用来初始化表格
    	For i = 1 To 表头数组长度    
    		Sheets("工作表名").Cells(1, i) = 表头数组(i - 1)    
    	Next i
    end sub
    

    3、将区域 赋值给数组

        Sheets("隔离清单").Select
        Dim 隔离清单表数组()
        隔离清单表数组 = Sheets("隔离清单").Range(Cells(1, 1), Cells(隔离清单表行数, 隔离清单表列数)).Value
        隔离清单表数组行数 = UBound(隔离清单表数组) - LBound(隔离清单表数组) + 1
    

    4、标准化的程序前序代码,为数据循环匹配和对比做铺垫

    Sub 循环对比()
    
        '加上选中工作表,可以减少一些不必要的错误,比如在数组赋值的时候如果不是选中工作表中就会报错
        Sheets("Sheet1").Select
        '用with可以减少引用,方便书写,也可以小幅度的提高速度
        With Sheets("Sheet1")
            Sheet1行数 = .UsedRange.Rows.Count
            Sheet1列数 = .UsedRange.Columns.Count
            '将sheet1中表头防盗一个数组中,此处可以结合初始化相关代码,完成一个动态展现表格的功能
            Sheet1表头数组 = .Range(Cells(1, 1), Cells(1, Sheet1表列数)).Value
            '将表头放入字典,表头每列的表头为key,第几列为值,这样配合循环使用就可以实现不管列顺序的情况下直接将值放入对应列
            Dim Sheet1表头字典 As Object '声明字典对象,亦可通过声明变体型变量完成声明 >>> Dim d
            Set Sheet1表头字典 = CreateObject("Scripting.Dictionary")    '声明字典
            For i = 1 To Sheet1表列数
                Sheet1表头字典(Sheets("Sheet1").Cells(1, i) & "") = i
            Next i
            '将表Sheet1的所有内容,放入数组总,用于同另外的数据进行匹配,这样比直接调用单元格对象要快的多的多
            Dim Sheet1表数组()
            Sheet1表数组 = .Range(Cells(1, 1), Cells(Sheet1表行数, Sheet1表列数)).Value
            Sheet1表数组行数 = UBound(Sheet1表数组) - LBound(Sheet1表数组) + 1
        
        End With
        
        Sheets("Sheet2").Select
        With Sheets("Sheet2")
            Sheet2表行数 = Sheets("Sheet2").UsedRange.Rows.Count
            Sheet2表列数 = Sheets("Sheet2").UsedRange.Columns.Count
        
            Sheet2表头数组 = Sheets("Sheet2").Range(Cells(1, 1), Cells(1, Sheet2表列数)).Value
            
            Dim Sheet2表头字典 As Object '声明字典对象,亦可通过声明变体型变量完成声明 >>> Dim d
            Set Sheet2表头字典 = CreateObject("Scripting.Dictionary")    '声明字典
            For i = 1 To Sheet2表列数
                Sheet2表头字典(Sheets("Sheet2").Cells(1, i) & "") = i
            Next i
            
            Dim Sheet2表数组()
            Sheet2表数组 = Sheets("Sheet1").Range(Cells(1, 1), Cells(Sheet2表行数, Sheet2表列数)).Value
            Sheet2表数组行数 = UBound(Sheet2表数组) - LBound(Sheet2表数组) + 1
        
        End With
          
        '将 Sheet1表头字典 中的所有key存入数组
        Sheet1表头字典keys = Sheet1表头字典.Keys
        
        '定义两个循环,用于数据比对
        For i = 2 To Sheet1表数组行数
            For j = 2 To Sheet2表数组行数
            	'判断两个表中"ID"字段的值是否相同
                If Sheet1表数组(i, Sheet1表头字典("ID")) = Sheet2表数组(j, Sheet2表头字典("ID")) Then
                	'字典的标记是从0开始的
                	'通过循环将对应的值付给每个单元格
                    For m = 6 To UBound(Sheet1表头字典keys) - 1
                    	'exists是用来判断字典中是否存在某个kye,加上判断,避免被匹配表中没有此字段报错
                        If Sheet2表头字典.exists(Sheet1表头字典keys(m)) Then 
                        	'此处暂时用循环给每个单元格进行赋值,这样效率不高,但是还没学会用动态添加数组然后给一个区域赋值
                            Sheets("Sheet1").Cells(i, Sheet1表头字典(Sheet1表头字典keys(m))) = Sheet2表数组(j, Sheet2表头字典(Sheet1表头字典keys(m)))
                        End If
                    Next m
                End If
            Next j
        Next i
    
    End Sub
    
    
    展开全文
  • VBA常用技巧

    2014-12-21 16:39:28
    技巧164 号转换为标 12 技巧165 判断工作表是否为空表 12 技巧166 查找指定工作表 12 技巧167 查找指定工作簿是否打开 12 技巧168 取得应用程序的安装路径 12 技巧169 数组的使用 12 169-1 代码运行时创建数组 ...
  • VBA与数据库

    2015-11-19 18:07:38
    •实例10-5 利用ADO获取文本文件的行数和列数 205 •实例10-6 利用ADO将超过65536行的文本文件数据导入到Excel工作表 206 •实例10-7 将工作表全部数据保存为文本文件(SaveAs) 208 •实例10-8 将工作表全部数据...
  • 04081获取单元格区域的列数 04082获取单元格的行号 04083获取单元格的列号 04084获取单元格的列标字母 04085获取指定列号单元格的列标字母(之一) 04086获取指定列号单元格的列标字母(之二) 04087获取单元格区域...
  • 12.返回指定列数的列标 13.用指定字符替换某字符 14.从右边开始查找指定字符在字符串中的位置 15.从右边开始查找指定字符在字符串中的位置 16.计算工龄 17.计算日期差,除去星期六、星期日 18.将英文字反转的自定...
  • 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 使用...
  • 函数作用:返回指定列数的列标.......................42 '13.函数作用:用指定字符替换某字符.....................43 '14.函数作用:从右边开始查找指定字符在字符串中的位置...43 '15.函数作用:从右边开始查找指定...
  • VBSCRIPT中文手册

    热门讨论 2010-11-12 10:13:06
    LBound 函数 对于指示的数组,返回最小的可用下标。 LCase 函数 返回已被转换为小写字母的字符串。 Left 函数 返回字符串最左边的指定数量的字符。 Len 函数 返回字符串中的字符数量,或者存储变量所需的字节...
  • vb Script参考文档

    2009-07-28 22:13:02
    LBound 函数 对于指示的数组,返回最小的可用下标。 LCase 函数 返回已被转换为小写字母的字符串。 Left 函数 返回字符串最左边的指定数量的字符。 Len 函数 返回字符串中的字符数量,或者存储变量所需的字节...
  • 17.7.2 编程获取版本 17.7.3 应用程序配置文件 17.7.4 发布方的策略文件 17.7.5 运行库的版本 17.8 小结 第18章 跟踪和事件 18.1 跟踪 18.1.1 跟踪源 18.1.2 跟踪开关 18.1.3 跟踪监听器 18.1.4 过滤器 18.1.5 断言 ...
  • C#高级编程(第6版)

    2011-05-11 11:10:30
     17.7.2 编程获取版本  17.7.3 应用程序配置文件  17.7.4 发布方的策略文件  17.7.5 运行库的版本  17.8 小结  第18章 跟踪和事件  18.1 跟踪  18.1.1 跟踪源  18.1.2 跟踪开关  18.1.3 跟踪监听器  ...
  •  17.7.2 编程获取版本  17.7.3 应用程序配置文件  17.7.4 发布方的策略文件  17.7.5 运行库的版本  17.8 小结  第18章 跟踪和事件  18.1 跟踪  18.1.1 跟踪源  18.1.2 跟踪开关  18.1.3 跟踪监听器  ...
  • 17.7.2 编程获取版本 17.7.3 应用程序配置文件 17.7.4 发布方的策略文件 17.7.5 运行库的版本 17.8 小结 第18章 跟踪和事件 18.1 跟踪 18.1.1 跟踪源 18.1.2 跟踪开关 18.1.3 跟踪监听器 18.1.4 过滤器 18.1.5 断言 ...
  • MYSQL中文手册

    2013-03-11 21:21:34
    言 1. 一般信息 1.1. 关于本手册 1.2. 本手册采用的惯例 ...13.3.1. DESCRIBE语法(获取有关的信息) 13.3.2. USE语法 13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法...
  • 13.3.1. DESCRIBE语法(获取有关的信息) 13.3.2. USE语法 13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. ...
  • 13.3.1. DESCRIBE语法(获取有关的信息) 13.3.2. USE语法 13.4. MySQL事务处理和锁定语句 13.4.1. START TRANSACTION, COMMIT和ROLLBACK语法 13.4.2. 不能回滚的语句 13.4.3. 会造成隐式提交的语句 13.4.4. ...
  • 任务53: VBA编程实现获取网页表格写入数据表 第6章: MySQL数据库安装、配置与可视化工具 任务54: 安装MySQL 任务55: 使用CMD登录mysql 任务56: 数据库数据类型 任务57: 约束 任务58: navicat介绍 任务59: ...

空空如也

空空如也

1
收藏数 20
精华内容 8
热门标签
关键字:

vba数组获取列数