VBA用字典来替代函数的Vlookup
<br />Excel里有Vlookup函数,查找匹配数据非常方便,在VBA里,也可以用worksheetfunction.vlookup方法来调用,今天我介绍一个另一种使用字典(dictionary)+数组的方法,速度也非常快。<br /> <br />数据源图片:<br /><br /> <br />代码:<br />Sub test()
Dim data, temp, arr
Dim d
Dim i&, k&
Set d = CreateObject("scri
在Excel中使用VBA合并相同的数据 保留不同的数据(或替换不同的数据)
替换不同数据的宏代码:
Option Explicit
Sub hebing() '合并
Dim arr, h&, l%, i&, j&, n&
arr = Range("a1").CurrentRegion.Value
h = UBound(arr): l = UBound(arr, 2)
ReDim brr(1 To h, 1 To l)
For i = 1 To h - 1
如何用VBA判断文件夹是否存在
如何用VBA判断文件夹是否存在.doc如何用VBA判断文件夹是否存在.doc
Dim EachCell As Range
'Creat UniqDicictionary object
Set UniqDic = CreateObject("Scripting.Dictionary")
'Traverse selected area
For Each EachCell In Range("A2:C11")
'Judge wheth
Public Sub DoFilter2()
' 按照发票号码做匹配,重新生成一个明细的表格,本例子的模板是Sheet9 和 Sheet13
'Sheet9 是明细,Sheet13 是汇总的, 需要从这个两个Sheet里重新提取数据到一个新的Sheet14里
'If Workbooks(1).Worksheets("sheet1") Is Nothing Then
问题描述:需要对excel某一行中的若干个单元格进行循环读取,因为列标是英文大写字母,存在合并单元格,同时涉及到”Z“之后的”AA“,”AB“列标,无法简单的使用for对asc码进行循环。
解决方案:使用数组,代码如下:Dim abc(1 To 99)
' sheet1 是从乾坤里导出的总表
' sheet2 是自己维护的已经开票的提单号
' 此函数是用来自动筛选已经开票的提单号,如果已经开票则在sheet1的S列的值为 1 ,否则为 0
' 只要把已经开票的提单号拷贝到sheet2 的E列就可以了,sheet1 从乾坤导出来的格式不变化,唯一要做的就是在sheet1里的S列添加一个标题filter
如何用VBA清除一列中有0的数,并且删除其所在行
代码如下:
Sub july234()
Dim i As Integer
For Each Y In Worksheets
X = Y.UsedRange.Rows.Count
For i = 1 To X If Cells(i, "A") = 0 Then
Cells(i, "A").EntireRow.Delete '在A列中删除0所在行
End If ...
VBA 使用Excel数据库:行转列
最近工作中有需求,要从Excel表中提取一些统计信息,因为需求变动可能比较频繁,所以用VBA来做了。调试数据操作部分颇费周折,涉及到行转列问题,特记录一下。
学以致用——使用VBA合并指定文件夹下的文件(Merge data in the same specified folder)
需求:合并文件对于一些用户而言是个常见需求,属于“体力劳动”。往往这个时候,就该VBA出场了。这里,实现了一个带用户界面的文件合并小工具。功能简述:1. 用户指定存放有待合并文件的文件夹(文件应该具有相同的结构)2. 合并好的数据会另存为一个新文件,并且带有时间戳代码:Sub Merge()
Dim fd As FileDialog
Dim forMergeFolder As S...
VBA脚本实例-对比两个Excel数据是否一致
VBA脚本,对比两个Excel数据是否一致,把不同两个Excel中的不同数据标红;请按ALT+F11查看代码;
VBA对比两字符串的相似度
线上有一个用JAVA写的对比两字符串相似度的,据说算法是俄罗斯人写的,还不错。为了在Excel中使用,用VBA改写了一个,放在这里存档。
Private Function min(one As Integer, two As Integer, three As Integer)
min = one
If (two < min) Then
min = two
Sub Row_Column_1()
Dim r As Long, c As Long, i As Integer, num As Integer, str As String
Dim myRange As Range
Dim myFon As Font
Set myRange = ActiveSheet.UsedRang...
VBA 批量生成 SQL
本文简单介绍一下用 VBA 来批量生成 SQL。
在平常工作中,有可能遇到这样的场景,Excel 里面的 N 多个数据需要导入到数据库中,如果人工去拼接 SQL 会很麻烦,这时候写个简单的 VBA 函数就可以搞定了。
假设我们有一个表,如下所示,需要导入到 MySQL 数据库中的一张表里面。
假设我们要执行的 SQL 是:
insert into vbaTable (n...
使用VBA进行数据逆转换
通常使用VBA进行处理数据的时候,是实现聚合功能,即:求和、计数等等。但是有些应用场景,需要将汇总记录还原为原始记录。如下图,需要根据左侧数据记录表中“数量”列的数值将记录扩展为右侧的表格。Private Sub CommandButton1_Click()
Dim aData, i, j, k, m, n, aRes()
aData = Sheets("原数据")...
vba中的查找匹配函数
最朴树的find例子:Range("G4") = Range("B:B").Find(Range("G3")).Row解释:
Range(“B:B”)表示要查找的位置在第B列
Find(Range(“G3”))表示要查找G3单元格中的值
Row返回查找到的位置的行数工作表函数Match例子Range("A1") = application.WorksheetFunction.Match(Ran
Excel Vba 比较两个sheet页中的每个单元格内容是否相等
Sub compareReport()
Dim c As Integer
Dim l As Integer
Dim count As Integer
count = 2
For l = 2 To 7465
For c = 3 To 18
If ((Not Trim(Sheet1.Cells(l, c)) = "") And (Not Trim(Sheet2.Cells