-
2020-12-31 03:06:43
Sub auto_Open()
Call CreateToolBar
End Sub
Sub CreateToolBar()
Dim ArrCaption(), ArrAction(), ArrFaceID(), ArrToolTip()
Dim i As Integer
ArrCaption = Array('查找', '功能二', '功能三')
ArrAction = Array('查找选定单元格内容', 'Action_Query', 'Action_MonthEnd')
ArrToolTip = Array('查找选定单元格内容', '待定', '待定')
ArrFaceID = Array(8, 25, 984)
With Application.CommandBars.Add(Name:='工具箱', temporary:=True)
For i = 0 To 2
With .Controls.Add(Type:=msoControlButton, temporary:=True)
.Caption = ArrCaption(i)
.OnAction = ArrAction(i)
.FaceId = ArrFaceID(i)
.Style = msoButtonIconAndCaptionBelow
.TooltipText = ArrToolTip(i)
End With
Next
.Visible = True
End With
End Sub
Sub 打开工具箱()
Application.CommandBars('工具箱').Visible = True
End Sub
Sub 关闭工具箱()
Application.CommandBars('工具箱').Visible = False
End Sub
更多相关内容 -
VBA-定位单元格
2020-12-14 19:51:52可以根据需要定位查找“标注”、“常量”、“公式”、“空值”、“可见单元格”等。 二、使用VBA的SpecialCells 方法 该函数和下面Excel面板功能相通: 其使用格式为:expression.SpecialCells(Type, Value) ... -
用VBA查找包含某字符串的单元格并标注
2014-02-19 23:11:08怎样用VBA查找选定区域内包含某字符串的单元格,并用设定的底色显示 -
VBA示例之 在特定的区域内查找文本,返回值是包含查找文本的单元格
2019-10-26 16:37:58VBA示例之 在特定的区域内查找文本,返回值是包含查找文本的单元格,供初学者参考,大牛勿进~~~~~~~ -
Excel 2010 VBA 入门 038 按颜色查找单元格
2021-04-13 14:45:54目录 示例: 实现代码: ...参数SkipBlanks表示是否跳过空白单元格,若为True,则表示不将剪贴板中的空白单元格复制到目标区域。 参数Transpose表示是否转置,若为True,则表示转置。 示例: ..目录
参数Paste表示选择性粘贴的内容,可以为下表中的任何一个。
参数Operation为粘贴的附加操作,可以为下表中的任何一个。
参数SkipBlanks表示是否跳过空白单元格,若为True,则表示不将剪贴板中的空白单元格复制到目标区域。
参数Transpose表示是否转置,若为True,则表示转置。
示例:
如图所示,该表为某公司某月销售人员的销售数据。在进行数据核对时,发现某些有问题的数据并将填充色改为灰色。现在需要将这些数据一次性筛选出来并复制到F:H列,该如何利用VBA实现?
销售地区 销售人员 销售金额 广州 程建华 135000 深圳 李国敏 67200 深圳 袁志刚 79500 深圳 周汉林 225000 广州 骈永富 15400 广州 孙玉梅 2500 上海 陈亚菁 37400 上海 康小芸 12000 上海 刘晨 22500 广州 齐光 73500 广州 于健惠 235000 山东 王文群 136500 山东 曾国安 21000 广州 刘志峰 16000 广州 刘玉录 78000 广州 俞卫广 36000 广州 杨建军 170000 深圳 曲波 38000 深圳 林革壮 73500 深圳 李卫卿 45000 广州 申玲 132000 上海 孙正发 63000 上海 毛传阳 106500 广州 张元端 147000 广州 朱凌波 265000 山东 张宏 34500 山东 郦锡文 300000 广州 张占斌 32500 广州 曹阳 205000 广州 周书敬 22400 广州 姚胜 215000 深圳 郭建 19500 深圳 高波 114000 深圳 卢卫 120000 实现代码:
Option Explicit Sub 按颜色查找() Dim Rng As Range Dim RowN As Long '清除结果区域 Range("F2:H" & Rows.Count).Clear RowN = 1 For Each Rng In Range(Range("C1"), Cells(Rows.Count, "C").End(xlUp)) '判断是否有填充色 If Rng.Interior.Pattern <> xlNone Then '复制至结果区域 Intersect(Rng.EntireRow, Columns("A:C")).Copy Cells(RowN, "F") '结果区域行+1 RowN = RowN + 1 End If Next End Sub
单元格对象的Clear方法
本例使用了单元格对象的Clear方法对单元格进行清除操作,该清除操作包括清除所有的数据以及格式。除了Clear方法外,Excel VBA还提供了其他清除单元格的方法,见表。
表 单元格对象(Range)的Clear方法
方 法
说 明
Clear
清除单元格所有的内容、格式、批注、超链接、分级显示
ClearComments
清除单元格批注
ClearContents
清除单元格内容(公式,值)
ClearFormats
清除单元格格式(包括条件格式、自定义格式)
ClearHyperlinks
清除单元格超链接(无法消除Hyperlink函数所生成的链接)
ClearNotes;
清除单元格批注和语音批注
ClearOutline
清除单元格分级显示
动态表示数据区域
本例使用了Range对象的起点与终点表示方式来表示C列的数据区域,起点为C2单元格,而终点则使用End属性获取该列最后一个有数据的单元格。
单元格对象的Copy方法
单元格对象的Copy方法是将单元格(包括内容、格式、批注等)复制到指定的区域,其语法为:
Rng.Copy [Destination]
其中,Rng为单元格或单元格区域,参数Destination为目标单元格区域对象。Destination是可以省略的,当省略时,则表示将Rng复制到剪贴板,然后需要用Paste方法进行粘贴。因而本例复制单元格的部分也可以使用以下语句完成:
Intersect(Rng.EntireRow,Columns("A: C")).Copy Cells (RowN,"F").Select ActiveSheet.Paste
示例代码2.0
Sub 按颜色查找1() Dim Rng As Range Dim RowN As Long '清除结果区域 Range("F2:H" & Rows.Count).Clear RowN = 1 For Each Rng In Range(Range("C1"), Cells(Rows.Count, "C").End(xlUp)) '判断是否有填充色 If Rng.Interior.Pattern <> xlNone Then '复制至结果区域 Intersect(Rng.EntireRow, Columns("A:C")).Copy Cells(RowN, "F").Select ActiveSheet.Paste '结果区域行+1 RowN = RowN + 1 End If Next End Sub
单元格对象的选择性粘贴(PasteSpecial)方法
当不需要复制单元格的所有属性时,如只需要复制单元格格式时,可以使用选择性粘贴PasteSpecial方法进行。在使用PasteSpecial方法时,首先需要对源单元格使用Copy方法将单元格复制到剪贴板,然后对目标单元格使用PasteSpecial进行选择性粘贴。PasteSpecial的语法为:Rng.PasteSpecial [Paste],[Operation],[SkipBlanks],[Transpose]
其中,Rng表示目标单元格区域。
-
参数Paste表示选择性粘贴的内容,可以为下表中的任何一个。
表 PasteSpecial方法的Paste参数
常 量
值
说 明
xlPasteAll
-4104
粘贴全部内容
xlPasteAllExceptBorders
7
粘贴除边框外的全部内容
xlPasteAllMergingConditionalFormats
14
将粘贴所有的内容,并且将合并条件格式
xlPasteAllUsingSourceTheme
13
使用源主题粘贴全部内容
xlPasteColmnnWidths
8
粘贴复制的列宽
xlPasteComments
-4144
粘贴批注
xlPasteFormats
-4122
粘贴复制的源格式
xlPasteFormulas
-4123
粘贴公式
xlPasteFomulasAndNumberFormats
11
粘贴公式和数字格式
xlPasteValidation
6
粘贴有效性
xlPasteValues
-4163
粘贴值
xlPasteValuesAndNumberFormats
12
粘贴值和数字格式
-
参数Operation为粘贴的附加操作,可以为下表中的任何一个。
表 PasteSpecial方法的Operation参数
常 量
值
说 明
xlPasteSpecialOperationAdd
2
复制的数据与目标单元格中的值相加
xlPasteSpecialOpeiationDivide
5
复制的数据除以目标单元格中的值
xlPasteSpecialOperationMultiply .
4
复制的数据乘以目标单元格中的值
xlPasteSpecialOperationNone
-4142
粘贴操作中不执行任何计算
xlPasteSpecialOperationSubtract
3
复制的数据减去目标单元格中的值
-
参数SkipBlanks表示是否跳过空白单元格,若为True,则表示不将剪贴板中的空白单元格复制到目标区域。
-
参数Transpose表示是否转置,若为True,则表示转置。
PasteSpecial方法实质就是工作表的选择性粘贴的基本操作,其参数设置与操作选项的对应关系如图所示。
-
-
VBA查找重复单元格
2011-08-18 10:34:53我的excel中有两列值,第一列的值有: A B C D .. 等等26个英文字母。 第二列空白。 第三列的值是: A D R G R W Z ..等等不重复的字母。...我希望能够在第二列里,显示第一列当前行的字母,是否在第三列中出现过;... -
VBA 循环单元格查询示例
2021-11-03 11:32:52'从meta区域查找IP对应的行,包含但不限于应用/模块 ' Function FindServiceByIP(ip As Variant) As Long Dim Cell As Range, Rng As Range Dim endRow As Long endRow = Worksheets("meta".Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) ' '从meta区域查找IP对应的行,包含但不限于应用/模块 ' Function FindServiceByIP(ip As Variant) As Long Dim Cell As Range, Rng As Range Dim endRow As Long endRow = Worksheets("meta").Range("B" & Rows.Count).End(xlUp).Row Set Rng = Worksheets("meta").Range("D4:D" & Worksheets("meta").Range("D" & Rows.Count).End(xlUp).Row) For Each Cell In Rng ' D列 ip列 With Cell If InStr(CStr(.Value2), CStr(ip)) > 0 Then FindServiceByIP = Cell.Row Exit Function End If End With Next Cell FindServiceByIP = 0 End Function Sub DoSetService() On Error Resume Next Dim IPCell As Range Dim endRow As Long Dim metaRow As Long Dim MoudApp As String Sheets("访问日志统计").Activate endRow = Worksheets("访问日志统计").Range("G" & Rows.Count).End(xlUp).Row If endRow < 1 Then Exit Sub Application.ScreenUpdating = False For Each IPCell In Range("G2:G" & endRow) MoudApp = "" With IPCell metaRow = FindServiceByIP(.Value) If metaRow > 0 Then MoudApp = Worksheets("meta").Range("B" & metaRow).Value2 & "/" & Worksheets("meta").Range("C" & metaRow).Value2 Range("I" & IPCell.Row).Value = MoudApp 'I列设置为根据IP查询得到的邮乐资产里的模块/应用 End If '比较邮乐资产的模块应用 与 接口调用时传递的自定义模块应用 If StrComp(MoudApp, Range("E" & IPCell.Row).Value, 1) <> 0 Then Range("J" & IPCell.Row).Value = "×" Else Range("J" & IPCell.Row).Value = "○" End If End With Next IPCell Application.ScreenUpdating = True End Sub
-
VBA学习笔记7:查找包含某内容的单元格
2022-04-21 22:51:28VBA学习笔记7:查找包含某内容的单元格VBA学习笔记7:查找包含某内容的单元格
用途:需要在工作表内包含某内容的单元格找出来
需要将下图中包含9的单元格查找出来:
运行后效果如下:
代码如下:
Sub 通过方法查找() '区域中查找所有包含9的数字 Dim rng As Range, rngadress$, sht1 As Worksheet, sht2 As Worksheet Worksheets.Add(before:=Worksheets(1)).Name = "含9数据" '创建一个新表存储含9的数据 [a1] = "含9数据" [b1] = "位置" Set sht1 = Worksheets(1) '含9数据表 Set sht2 = Worksheets(2) '原表 With sht2.UsedRange '在原表所有范围内查找 Set rng = .Find(9, lookat:=xlPart) '模糊查找 If rng Is Nothing Then '判断是否找到,如果未找到则说明1个没有,可直接结束(否则进入循环会报错,因为address不存在) sht1.[a2] = "无数据" Else rngadress = rng.Address '确定第一个的位置,为了结束循环使用 Do Set rng = .FindNext(rng) sht1.Range("a1045876").End(xlUp).Offset(1, 0) = rng sht1.Range("a1048576").End(xlUp).Offset(0, 1) = rng.Address Loop Until rngadress = rng.Address End If End With End Sub
注意:
1、Range(“要查找的区域”).Find
(1)what :=要查找的内容 重要
(2)after:=从哪个位置之后开始查找,如区域为"a1:a11",after:=a4,则查找顺序a5-a11-a1-a4
(3)lookin:=查找的范围,xlvalues 查找值,xlformulas查找公式,xlcomments查找批注
(4)lookat:=模糊匹配还是精准匹配,xlwhole精确匹配,xlpart模糊匹配
(5)searchorder:=按照行查找还是列查找,xlbyrows 按行,xlbycolumns按列
(6)searchdirection:=查找的方向,xlprevious向前查找,xlnext向后查找
(7)matchcase:=是否区分大小写,true区分
(8)mathchbyte:=是否区分全角半角,true区分
(9)searchformat:=是否带格式查找,true带格式2、对于第一个要用is nothing判断,否则若为空值,会报错
3、主要语法
with range(…)
set rng=.find(找谁,其他条件)
if rng is nothing then
… 如果没找到的操作
else
set rngaddress=rng.address
do
rng=.findnext(rng)
loop until rng.address=rngaddress '结束循环
end if
end with -
VBA模糊查询示例(使用单元格区域数据).xls
2021-09-10 23:09:20VBA模糊查询示例(使用单元格区域数据).xls -
vba中单元格连(联)接跳转其他对应单元格
2022-05-03 09:21:49为了实现图片这种效果: -
Word VBA查找表格单元格的第一段
2022-02-17 23:35:15Word VBA查找表格单元格的第一段,替换并保留原格式 -
excel vba 实现单元格根据需要自动改变颜色
2022-03-31 16:28:36当行数增多的时候,记录或查找数据会错行,容易出现错误,如果将奇偶行设置成不同的颜色就好多了。就象这样 但是这样,如果在单元格之间拷贝数据,就会影响原来的底色,还要重新调整,比较麻烦,就想让她自动完成... -
Excel VBA 之单元格格式
2020-06-03 13:38:03你的VBA过程可能需要查明某个具体单元格的格式。我们可以使用NumberFormat属性来找回单元格格式: ?Range("A1").NumberFormat 在立即窗口输入上面的问题后,Excel显示“General” Range("A1").NumberFormat =... -
查找单元格中包含特定字符串中的某一个,并返回该特定字符串
2020-12-03 14:21:57查找单元格中包含特定字符串中的某一个,并返回该特定字符串,查找单元格中包含特定字符串中的某一个,并返回该特定字符串 -
excel vba 根据颜色查询单元格
2022-04-02 16:11:40Sub 宏2() ' ' 宏2 宏 ' ' With Application.FindFormat.Interior .PatternColorIndex = xlAutomatic .Color = 65535 '黄色 .TintAndShade = 0 .PatternTintAndShade = 0 ... Cells.Find(What:="", After:=... -
查找合并单元格的位置.xlsx源码EXCEL VBA宏编程xlsx实例代码下载
2022-05-28 22:39:39查找合并单元格的位置.xlsx源码EXCEL VBA宏编程xlsx实例代码下载查找合并单元格的位置.xlsx源码EXCEL VBA宏编程xlsx实例代码下载查找合并单元格的位置.xlsx源码EXCEL VBA宏编程xlsx实例代码下载查找合并单元格的位置... -
VBA示例函数之 求人不如自已动手 提取定串中汉字
2019-10-26 17:33:14VBA示例函数之 求人不如自已动手 提取定串中汉字,供初学者参考,大牛勿进~~~~~~~ -
VBA 根据Find方法根据特定内容查找单元格
2018-12-31 16:58:002. Find方法的语法[语法]<单元格区域>.Find (What,[After],[LookIn],[LookAt],[SearchOrder],[SearchDirection],[MatchCase],[MatchByte],[SearchFormat])'_____... -
第047篇:VBA之单元格格式设置基础(数字格式、字体格式、单元格底纹)
2020-06-16 23:05:46Sub 给大于5的单价设置格式() Set i = Cells(Rows.Count, 2).End(xlUp) '动态查找第2列的最后一个单元格 Range([b2], i).ClearFormats '先将第2列内容的格式清除 For Each Rng In Range([b2], i) '这里使用了... -
他山之石——使用VBA进行单元格查找(Find/Match with VBA)
2018-06-22 23:58:53这节对我的启发是,是否可使用Find/Match或其他方法来替代worksheetfunction.vlookup方法,从而提高工作中的一个报表的...'1 使用循环查找 (在单元格中查找效率太低) '2 调用工作表函数 Sub c1() '判断是否存在... -
EXCEL——VBA实现模糊查找并获取查找到的单元格内容
2020-12-29 06:24:26这个时候如果对多个数据一个个在目标sheet中ctrl f进行查找实在太过没有效率,这个时候我们通过VBA来实现批量查找并获取单元格的值。首先对情景进行模拟,如下要在这个目标sheet中进行查找:目标sheet查找的值为:要... -
Vba代码集锦--Find方法(3)-查找所有符合条件的单元格并显示
2021-05-04 06:34:12Vba代码集锦--Find方法(3)-查找所有符合条件的单元格并显示2018-09-14代码示例Sub aaa()"区域查找,从某区域查找所有符合条件的单元格并一一显示Dim MRG As Range, aaa As StringSet MRG = Range("A1:F20").Find("A... -
vba 查找第一个单元格A1 在本表位置中查找其他excel的和A1相似的单元格,并且定位
2018-10-08 15:50:09'使用通配符查找 h = 5 Set c = .Find(findx, LookIn:=xlValues) If Not c Is Nothing Then FirstAddress = c.Address '在这里写根据第一个找到的单元格进行的操作 Do '在这里写对根据... -
运用Excel VBA在EXcel中实现的提取单元格中特定文字
2013-09-25 17:39:48这是我个人运用Excel VBA在EXcel中实现的提取单元格中特定文字,并用”.“来标注此单元格是否存在这个字符的小程序。 -
Excel·VBA单元格摘要备注内容提取
2022-04-02 16:15:13《excel吧提问-单元格摘要备注内容提取》,对单元格备注内容,分别提取姓名和金额 注意:sub中的正则匹配局限性较大,小心使用,且仅支持操作英文括号()内的内容 Private Function RE_STR(source_str As String, pat... -
VBA从当前位置向上查找a,返回a所在的单元格位置
2017-04-28 01:44:07VBA有没有哪个函数可以从当前位置向上查找(例如字母a),返回a所在单元格的位置 -
Excel·VBA自定义函数获取单元格多数或少数值
2022-04-22 16:46:39《excel吧提问-单元格多数值》,返回多个单元格中出现最多次数的单元格的值 适用多个单元格和单元格区域 Function majority(mode, ParamArray args()) '函数定义majority(单元格1...2种查找模式,"+"即多数、"-"即少数 -
【一步一步学习VBA】VBA获取单元格数值并弹窗显示
2016-08-03 00:12:06表格如下图: 1 1 2 2 2 1 2 3 1 1 2 1 2 1 2 3