精华内容
下载资源
问答
  • 上一讲,我们说了下类和对像的一些简单知识, 类可以理解为一个模板,而对像是根据这个模板创造出来的东西, ...在工作中, 我们会经常遇到, 我们打开的一个excel文件,不止有一个,而是很非常多个 如下图,,就有...

    上一讲,我们说了下类和对像的一些简单知识, 类可以理解为一个模板,而对像是根据这个模板创造出来的东西,

    它有它自己的成员,有它自己的动作

    在我们启动excel的时候,excel就自动创建了许多对象, 其中之一就是worksheets, 这个对像可以用来表示我们的工作表

    中所有的表格

    在工作中,  我们会经常遇到, 我们打开的一个excel文件,不止有一个表,而是很非常多个

    如下图,,就有员工和地址两个表,也可以叫两个sheet:

     

    由于工作需要,我希望把员工点点didi的地址从另一个表格获取出来,然后写到员工表里, 当然实际工作中,我们可能有

    各种各样的需要. 现在就来看看如何获取吧

    Public Sub 点点didi14()
    
     For i = 1 To 2
     
       yuanGongName = Worksheets("员工").Cells(i, 1).Value
       
       For j = 1 To 5
     
       
           If Worksheets("地址").Cells(j, 1).Value = yuanGongName Then
         
               Worksheets("员工").Cells(i, 3).Value = Worksheets("地址").Cells(j, 2).Value
           
         
           End If
         
       Next
     Next
     
    
    End Sub
    
     
    
    End Sub
    

     

    这里, worksheets("表名"), 就可以引用我们想要的表格了. 然后获得表格对像的引用后, 就可以用表格对像所具有的cells对像,来获取每个单元格的值啦.

    然后运行一下, 就可以把地址写入到员工表的第三列了.

     

     

     

     

     

    这里还用了两层偱环. 因为我只是举个简单的例子, 实际上的表格肯定不只这一两行数据啦. 

    第一层循环是获取员工的名字 

    获得员工名字后, 再进入下一层循环,  遍历地址表中第一列的五个单元格 ,因为j最大到5 . 如果遇到和员工的名字相同的单元格

    就获取该单元格旁边的地址信息. 

    worksheets 还有很多好用的功能,等待你去发现.. 一起加油

    展开全文
  • 这是我个人运用Excel VBA在EXcel中实现的提取单元格中特定文字,并用”.“来标注此单元格是否存在这字符的小程序。
  • VBA提取文件夹内所有word文档中的表格数据
  • 批量提取多个Excel文件内指定单元格的数据(文件名和数据) 例如收集了excel表格统一格式的个人简历,从中抽取个人基本信息,生成数据表。 将源数据excel文件放在同一个文件夹下。 新建一个shouji.xls也放在该...

    批量提取多个Excel文件内指定单元格的数据(文件名和数据)

    例如收集了excel表格统一格式的个人简历,从中抽取个人基本信息,生成数据表。
    将源数据excel文件放在同一个文件夹下。
    新建一个shouji.xls也放在该文件夹下。

    原表格数据
    1.xls
    ---------------
       A     B
    3 60    101
    ---------------
    2.xls
    3.xls

    打开shouji.xls,按住Alt+F11进入宏界面,点击菜单的插入->模块,在代码窗口粘贴如下代码:
    VBA代码如下:
    -----------------------------
    Sub find()
     Application.ScreenUpdating = False
     Dim Mydir As String
     Dim i As Integer
     i = 2
     Mydir = ThisWorkbook.Path & "\"
     ChDrive Left(Mydir, 1)
     ChDir Mydir
     Match = Dir$("*.xls")
     Do
     If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
     Workbooks.Open Match, 0, 1
     ThisWorkbook.ActiveSheet.Range("A" & i) = Match
     ThisWorkbook.ActiveSheet.Range("B" & i) = ActiveWorkbook.Sheets("Sheet1").Range("A3")
     ThisWorkbook.ActiveSheet.Range("C" & i) = ActiveWorkbook.Sheets("Sheet1").Range("B3")
     ActiveWorkbook.Close 0
     i = i + 1
     End If
     Match = Dir$
     Loop Until Len(Match) = 0
     Application.ScreenUpdating = True
    End Sub
    ----------------------------------------------
    F5运行宏
    在shouji.xls表格自动生成数据,如下:
          A          B         C
    2    1.xls    60    101
    3    2.xls    70    130
    4    3.xls    80    100

    -----------------------------------
    如果需要采集A3、B3的其他单元格数据,可以继续添加代码:
    ThisWorkbook.ActiveSheet.Range("X" & i) = ActiveWorkbook.Sheets("Sheet1").Range("X3")
    如果原数据表的单元格和目标单元格有规律,可以用循环语句解决。

    展开全文
  • VBA处理工作合并单元格 - 格式篇

    千次阅读 2018-03-01 01:49:30
    前言 Excel合并单元格是有人爱有人恨的功能,一般来说数据分析师都非常憎恨这功能,因为合并单元格常常闹幺蛾子,导致数据统计和格式化障碍重重。...如果数据表是有合并单元格的,套用表格格式,杯具了… …,合...

    前言

    Excel合并单元格是有人爱有人恨的功能,一般来说数据分析师都非常憎恨这个功能,因为合并单元格常常闹幺蛾子,导致数据统计和格式化障碍重重。


    格式篇

    对于普通的规整数据,如果需要设置成间隔填充颜色,可以说是so easy。功能区中点几下鼠标(开始>>套用表格格式),选中自己喜欢的表格样式,瞬间完成这个任务。
    如果数据表是有合并单元格的,套用表格格式,杯具了… …,合并单元格都不见了,欲哭无泪呀!

    领导就要用这样的合并单元格,你就忍了吧。只要学会MergeCellsMergeArea属性,VBA代码立即搞定合并单元格格式。

    Sub FormatMergedArea()
        Dim c As Range, bFlag, rng
        Columns(1).Interior.Color = xlNone
        lst = Cells(Rows.Count, 1).End(xlUp).Row
        For i = 1 To lst
            Set c = Cells(i, 1)
            If c.MergeCells Then
                Set c = c.MergeArea
                i = i + c.Cells.Count - 1
            End If
            If Not bFlag Then c.Interior.Color = vbYellow
            bFlag = Not bFlag
        Next
    End Sub

    首先清除第1列的单元格底色,然后循环处理有A列中的有数据的单元格。如果单元格属于某个合并单元格,那么MergeCells属性返回值为True,对于合并区域中的任何一个单元格,都可以使用Range(..).MergeArea.Address返回整个合并区域的引用地址。在示例代码,使用Cells.Count进而获取当前合并区域单元格数量。
    设置间隔色时,对于连续单元格区域,通常会根据行号的奇偶来决定是否设置填充色,但是对于不规则合并区域,这中判断方式,已经不再适合。代码中使用了一个逻辑变量,作为是否设置当前单元格格式的标志位,每次循环时bFlag = Not bFlag实现标志位反转,以实现隔行填充的效果。

    展开全文
  • 0、表格内容 A列 B列 手机2134 型号324 2135手机 325型号 2手机136 32型号6 1、Word法 1.1 提取非数字 ... 他山之石——在VBA中使用正则表达式-Part2(Regular Expression) 提取个单元格中的文本(非数字)-自定义函数

    0、表格内容

    A列B列
    手机2134
    型号324
    2135手机
    325型号
    2手机136
    32型号6

    1、Word法

    1.1 提取非数字

    遇事不决就去隔壁找Word,将表格A列内容复制到Word中,打开“替换”窗口,输入[0-9],点开“高级搜索”勾选“使用通配符”,点击全部替换,将替换好的内容再复制回Excel表格中。
    在这里插入图片描述

    1.2 提取数字

    将表格A列内容复制到Word中,打开“替换”窗口,输入[!0-9],点开“高级搜索”勾选“使用通配符”,点击“全部替换”,将替换好的内容再复制回Excel表格中。
    在这里插入图片描述

    2、自定义函数法

    按Alt+F11,打开VBA编辑器,选中工作薄右键插入模块,在代码窗口粘贴代码。
    在这里插入图片描述

    2.1 提取非数字

    Function Extract_numbers(aa As Range)
        Dim n As Integer, i As Integer, tem
        n = Len(aa.Value)
        For i = 1 To n
            If IsNumeric(Application.Find(Mid(aa.Value, i, 1), "0123456789")) = False Then
                tem = tem & Mid(aa.Value, i, 1)
            End If
        Next
        Extract_numbers = tem
    End Function
    

    在表格中输入对应公式
    在这里插入图片描述

    2.2 提取数字

    Function Extract_Non_numbers(aa As Range)
        Dim n As Integer, i As Integer, tem
        n = Len(aa.Value)
        For i = 1 To n
            If IsNumeric(Application.Find(Mid(aa.Value, i, 1), "0123456789")) = True Then
                tem = tem & Mid(aa.Value, i, 1)
            End If
        Next
        Extract_Non_numbers = tem
    End Function
    

    在表格中输入对应公式
    在这里插入图片描述

    3、宏程序法

    按Alt+F11,打开VBA编辑器插入模块,在代码窗口中粘贴代码。
    然后关闭VBA编辑器,返回Excel界面,然后按Alt+F8打开“宏”对话框,选择对应宏执行即可。

    3.1 提取非数字

    Sub extra_No()
        Dim d As Object, arr, brr, i&
        Dim sr As String
        Set d = CreateObject("scripting.dictionary")
        Set regex = CreateObject("VBScript.RegExp")
        arr = [a1:a15]
        brr = [b1:b15]
        For i = 1 To UBound(brr)
            sr = Range("a" & i)
            With regex
               .Global = True
               .Pattern = "\d"
              '这里也可以写成.Pattern = "[\u4e00-\u9fa5]"
              Range("b" & i) = .Replace(sr, "")
            End With
            With [b1:b15]
                .NumberFormat = "General"
            End With
        Next
    End Sub
    

    3.2 提取数字

    Sub extra_No()
        Dim d As Object, arr, brr, i&
        Dim sr As String
        Set d = CreateObject("scripting.dictionary")
        Set regex = CreateObject("VBScript.RegExp")
        arr = [a1:a15]
        brr = [b1:b15]
        For i = 1 To UBound(brr)
            sr = Range("a" & i)
            With regex
               .Global = True
               .Pattern = "\D"
              Range("b" & i) = .Replace(sr, "")
            End With
            With [b1:b15]
                .NumberFormat = "General"
            End With
        Next
    End Sub
    

    参考:
    他山之石——在VBA中使用正则表达式-Part2(Regular Expression)
    提取一个单元格中的文本(非数字)-自定义函数

    展开全文
  • Excel VBA 读取其它excel单元格内容详细案例 通过一按钮读取其它excel表格的内容的方法: 创建一按钮 在excel表单插入按钮,进入design mode后双击按钮进入宏程序编辑 ...-在本单元格内读取另一e
  • VBA脚本可以实现从word文档的多个表提取数据,每个表格的信息提取到一行。 Sub word2els() Set wdApp = CreateObject(“kwps.application”) path_ = ThisWorkbook.Path wdApp.Documents.Open (path_ & “”...
  • Sub output() Application.ScreenUpdating = False Dim Mydir As String Dim i As Integer i = 2 Mydir = ThisWorkbook.Path & “” ChDrive Left(Mydir, 1) ChDir Mydir '文件名 Match = DirKaTeX parse error:...
  • 使用VBA提取文件夹内所有word文档中的表格数据
  • VBA查找重复单元格

    2011-08-18 10:34:53
    等等26英文字母。 第二列空白。 第三列的值是: A D R G R W Z ..等等不重复的字母。 我希望能够在第二列里,显示第一列当前行的字母,是否在第三列中出现过;如果出现过则显示“有”;如果没有则什么都不显示。
  • 3, excel vba 获取表格里的单元格的值

    万次阅读 2018-01-22 15:20:02
    接下来,给大家看看怎么取得表格里一个单元格的值.因为只有拿到了这个值,你才能对它进行各种改造 如下图: 单元格 A1 里有一个值: 点点didi3 接下来我们要用vba得到这个值.并像上节一样显示出来 1, 按 ...
  • 使用Excel 的vba宏将不同行数据合并到同一单元格 文章目录使用Excel 的vba宏将不同行数据合并到同一单元格一、效果展示二、创建变量三、将excel数据存入变量中四、拼接处理五、拼接后插入 一、效果展示 图一:未拼接...
  • 数据:N张工作簿,每张工作簿里又有M张工作,每张工作的同一位置Cells(2,16)有需要的数据,想讲这些数据汇总到一张新的表格。 新建一张“汇总.xlsm”,并打开,新建sub()过程; 依次打开工作簿; 源码如下: ...
  • 前言:最近在做一地址标准化的竞赛,里面包括了地址提取、分词、清洗、匹配等一...如上图所示,我想要的结果就是根据C列,判断B列里是否有一样的内容,如果有的话就用红色标记,使用VBA很简单,不过也查了蛮资料
  • Excel VBA 根据Sheet2中的表格数据处理Sheet1中的数据,包括:1,对sheet1和sheet2指定数据的循环比较;2,符合条件的数据复制至sheet1中,并且用表格颜色进行标记
  • 提取excel工作多个sheet相同的单元格数据,并以列的形式存储在新的sheet中
  • 实例需求:数据保存在A列中,需要在其中提取多数据分别写入B:E列中。如果A列数据以反斜杠结尾,例如A4单元格100g787×1092-白牛皮沙龙纹A/,提取物料名称时需要去除末尾的反斜杠;对于非反斜杠结尾的数据,年提取...
  • 实例需求: 待处理字符串: >西装,皮带,领带各10,西装20上衣30,西装40上衣50西装皮带领带各60,西装70上衣80,西装90上衣80,70西装60上衣,...处理规则:仅提取其中包含“xx各yy”的部分,如下图黄色部分所示。
  • excel单元格一个条件匹配多个结果VBA

    千次阅读 2020-04-02 14:42:08
    如图,一批如1的数据,一个单元格对应多个值,需要去重单元格并合并其值在同一个单元格中展示,因此用VBA写个Function实现手敲的烦恼。 VBA实现程序: Function abc(a As Range, b As Range, c As String) Dim t ...
  • 需求:最近工作需要将多个采购单的数据汇总到一张中查看,因为每张采购单格式相同,且每个采购单对应一个sheet,现在想把张三明细、李四明细中的每月采购总额、期初应付款余额、供应商名称等汇总到一张sheet中,...
  • EXCEL表单元格内特定内容的提取

    千次阅读 2020-06-23 10:09:51
    EXCEL表单元格内特定内容的提取 今天我给大家介绍在工作中使用excel的一小技能-单元格字符串特定内容的提取。 Excel可以说是我们在工作中用得最频繁的一办公软件,但是大家是否知道excel其实具有很可以实现...
  • 大家好,我们今日讲解“VBA信息获取与处理”教程中第九专题“利用IE抓取网络数据”的第三节“利用IE,抓取解禁股票数据”,这专题是非常有用的知识点,希望大家掌握。第四节 利用IE,抓取解禁股票数据大家好,这...
  • VBA一键汇总多个工作簿-名称相同的工作-的指定区域数据 日常工作,我们经常需要汇总相同格式的工作簿的某个工作数据 如1月业绩、2月业绩。。。。12月业绩等 姓名 数量 数据22 22 数据23 23 ...
  • 有这样一个数据表, 现在想把D列的车间所在的每一行数据,复制到其他对应的工作表里,用VBA如何去实现呢 Sub chaifen() Dim i, j As Integer For i = 2 To Range(“a65535”).End(xlUp).Row j = Sheets(Sheet1.Range...
  • Excel,每隔几天有一汇率数据单独在一sheet上,一共有...现在的思路就是:把每一sheet中汇率单元格数据和sheet名取到然后复制到一张新的sheet里,循环一直把所有的sheet循环一遍就可。在VBA环境执行成功。
  • 某一文件夹下有多个txt文件,文件里每行是一个内容,类似: data1.txt 1 2 3 4 5 data2.txt a b c d e 最终需要把这些txt内容复制到excel里,并存在同一个sheet的不同列里 编码 Sub AddWorkbook() 'sub表示一个...
  • Excel表格,想以其中某一列为索引,查找另一表格中同样索引的行,找到该行的某个内容复制到原来的表格指定的位置中。还可以删除原有表格中重复的内容。应用场景非常,比如:利用学生学号和考场分配查找学生...
  • 1.EXCEL VBA遍布文件夹的操作 关于VBA遍历文件夹主要用的是提供的Application.FileDialo函数来由个人进行自由选择,通过获取选择... Dim sel_Path As String '//定义一选择的文件夹 Dim MyFile As String '//文...
  • 对同一文件夹下多个工作簿中指定工作内指定单元格进行批量修改

空空如也

空空如也

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

vba提取多个表单元格数据