精华内容
下载资源
问答
  • 近日一直在研究Excel VBA,昨天看到了《处理外部数据和文件》这一章节,本来照猫画虎的抄代码可以一键过,没想到遇到了诸多问题,经过几个小时的搜索汇总,最终形成了以下几点经验(本机安装win7 office2016)。...

    近日一直在研究Excel VBA,昨天看到了《处理外部数据和文件》这一章节,本来照猫画虎的抄代码可以一键过,没想到遇到了诸多问题,经过几个小时的搜索汇总,最终形成了以下几点经验(本机安装win7 office2016)。
    1.早期绑定。通过“工具-引用”勾选Microsoft ActiveX Data Object 2.8 Library和Microsoft ActiveX Data Object Recordset 2.8 Library。
    2.连接字符串。Provider=Microsoft.ACE.OLEDB.12.0,Extended Properties=Excel 12.0
    3.ODBC。系统DSN-添加-Microsoft Excel Driver(.xls,xlsx,.xlsm,.xlsb),其中版本选12.0
    个人认为安装好数据库,驱动程序,使用的时候匹配好版本就可以了。

    展开全文
  • 如上俩图,实现左边的数据提取一部分至右边,一些特定的数据,— — — — — — — — 是每条数据之间的分割线。当然,颜色和线条是没有的,为便于理解我标上去的。点击一个按钮怎么实现呢? 我是完全的新手,...
  • VBA提取网页数据的四种方法,可以应用于excel中vba编程用于从网络自动提取数据
  • 基于Excel VBA的批量数据提取工具开发 基于Excel VBA的批量数据提取工具开发
  • 例如 有这样子的excel表格 就是想 做一个按钮 这个按钮的功能是 点击一下,就可以分析FREQUENCY这一列 把属于周一(Mon)的那一行数据的Parameters 数据抽出来,放到别的名字叫Mon的sheet去,当然这些sheet...
  • 利用VBA技术从会计记账凭证中自动生成明细帐和总账
  • Json常用来存储数据,使用ScriptControl对象方法将Json数据提取Excel中。代码如下:SubJsonToRng()DimsJson$,js$sJson=Range("A1") 'JSON数据在A1js="varr,k,row=c=1,d={};for(rinj){row++;for(kinj[r]){if(!d[k])...

    Json常用来存储数据,使用ScriptControl对象方法将Json数据提取到Excel中。

    代码如下:

    Sub JsonToRng()

    Dim sJson$, js$

    sJson = Range("A1") ' JSON 数据在A1

    js = "var r,k,row=c=1,d={};for(r in j){row++;for(k in j[r]){if(!d[k]){d[k]=c++;rng(1,d[k])=k;}rng(row,d[k])= j[r][k];}}"

    js = "j=" & sJson & ";" & js

    With CreateObject("ScriptControl")

    .Language = "JScript"

    .AddObject "rng", Range("A3")  ' A3 是起始单元格,可以改为别的单元格

    .eval (js)

    End With

    End Sub

    JS说明

    //j= sJson , rng 是用 AddObject 加入的单元格

    var r, k,

    row = c = 1, //起始单元格的相对 行、列 偏移

    d = {}; //空字典

    for (r in j) {

    row++; //行 偏移

    for (k in j[r]) {

    if (!d[k]) {  //如果key不存在,则添加 key 和 标题行

    d[k] = c++; //列 偏移 和 key 相关联

    rng(1, d[k]) = k; //把key写到 标题行

    }

    rng(row, d[k]) = j[r][k]; //把Value写到 单元格

    }

    }

    注:以上代码来自网络

    展开全文
  • MetricsExtraction:启用了VBAexcel工作簿,可从亚马逊服务器中提取数据以进行实时指标跟踪
  • 如何用VBA提取网上的表格数据Excel 跪求这里的高人帮忙写一个vba,不然超过一万个网页一个一个copy & paste 进 excel 会死人的。小弟已这样一个一个copy 2个月了。 在 [url=...
  • 本来以为Excel提供现成的函数来提取单元格的超链接,但似乎并没有。 在网上查到以下一段代码,用是可以用,但是效率比较低(不到500行数据,大概要等待数十秒才能出结果)。 Sub ExtractHL() Dim HL As Hyperlink...

    本来以为Excel提供现成的函数来提取单元格的超链接,但似乎并没有。

    在网上查到以下一段代码,用是可以用,但是效率比较低(不到500行数据,大概要等待数十秒才能出结果)。

    Sub ExtractHL()
       Dim HL As Hyperlink
       For Each HL In ActiveSheet.Hyperlinks
           HL.Range.Offset(0, 1).Value = HL.Address
        Next
    End Sub

    好吧,该到发挥自己的VBA编程技能的时候了,通过将超链接先保存到数组,最后统一赋值给单元格,瞬间即可执行完毕。

    当数据量比较大时(上万行甚至几十万行),两种方法的执行效率将会有天壤之别。

    分享代码如下:

    Sub 提取链接()
        Dim ArrayHL(0 To 500, 0 To 1) As String
        Dim i As Integer
        Dim usedRows As Integer
        
        usedRows = Worksheets("Excel函数").Range("A1048576").End(xlUp).Row
        
       
        For i = 1 To usedRows - 1
            ArrayHL(i - 1, 0) = Range("C" & i + 1).Hyperlinks(1).Address
        Next
        
        Worksheets("Excel函数").Range("D2").Resize(usedRows - 1, 1).Value = ArrayHL
    End Sub

    提取结果如下所示:


    展开全文
  • 本文以《Excel VBA——创建组合图表》中生成的图表为例讲述如何通过VBA中Series对象的Formula属性提取图表中数据系列的引用区域。如图1,图表中的“目标值”,“设计方案”,“偏差”就是构成图表的三个数据系列,每...
    本文以《Excel VBA——创建组合图表》中生成的图表为例讲述如何通过VBA中Series对象的Formula属性提取图表中数据系列的引用区域。如图1,图表中的“目标值”,“设计方案”,“偏差”就是构成图表的三个数据系列,每个数据系列都对应一个系列公式,当选中图表中的某个数据系列时,系列公式就显示在公式编辑框中。Series公式语法为:
    = SERIES(name, category_labels, values, order)

    f45dafb2e1bba1f7792f34a2a4fb39bb.png

    图1 SERIES公式内参数解析以图1为例对参数进行解析:

    name为“图表2!$C$1”,表示将C1单元格中的值作为系列名称显示在图例中。这个参数是可选参数,如省略,就默认为系列1、系列2等。如果图表只有一个数据系列,则默认为图表标题。

    category_labels为“图表2!$A$2:$A$5”,表示将A2:A5单元格区域的值作为分类轴标签,也就是横坐标显示值。这个参数也是可选参数,如省略,横坐标就显示为从1开始的连续整数。values为“图表2!$C$2:$C$5”,表示将C2:C5单元格区域的值作为数据系列的具体数值。这是一个必选参数。

    order为“2”,表示该数据系列在所有系列中的序号,本例中序号为2。

    Function过程

    本号之前文章的代码中用到的都是VBA的Sub过程。在VBA中,一个Sub过程就是一种基本的程序单元,使用时通常会将完成某个任务的一系列代码放入一个Sub过程。通过录制宏得到的就是Sub过程,还有一种过程是无法通过录制得到的,它就是Function过程,其实就是在VBA中自定义函数。

    这里我们就定义一个可以返回图表数据系列对应单元格区域地址的Function过程。

    代码分享

    Function rngseries(ByVal Nindex As Integer, ByVal chtchart As Chart) As Range   '定义返回数据系列指定单元格区域地址的Range变量    Dim serseries As Series    Set serseries = chtchart.SeriesCollection(Nindex)   'Nindex是指代数据系列序号的参数,通过SeriesCollection属性抓取指定序号的数据系列    Set rngseries = Range(Split(Split(serseries.Formula, ",")(2), "!")(1))  '两次采用Split函数,将series公式中的values参数中的单元格区域地址提取出来,并赋给rngseries变量    Set serseries = NothingEnd Function

    以上代码自定义了一个名为rngseries的Function过程,并定义了两个按值传递的过程参数。其中,Nindex为整形变量,指代数据系列对应序号;chtchart为图表变量。

    通过chtchart.SeriesCollection属性可以抓取指定序号的数据系列,这个方法在前面的文章中也应用过。Split函数是将通过serseries.Formula属性返回的公式字符串(图表2!$C$1,图表2!$A$2:$A$5,图表2!$C$2:$C$5,2)按指定分隔符拆分为一维数组。本例中按 “,” 和 “!” 拆分两次后就可以获得values参数中的数据系列所在单元格区域地址。要注意,Split函数分隔的一维数组索引号都是从0开始,所以提取values参数部分,其索引号为2。

    这里额外加个鸡腿说明一下过程参数的两种传递方式:按引用传递、按值传递。

    按引用传递,过程只会传递保存在变量数据中的内存地址,而不是数据本身,也就是说过程中用来传递的参数可能会被被调用过程中的某些语句修改。

    按值传递,也就是在定义被调用过程时,在参数前加上ByVal关键字,这时无论被调用过程中的语句如何修改传递参数的值,执行过程时只会按保存在变量数据中的值运行,不会被修改。

    有点绕,不知道解释是否清楚?6041823871ba861cf4cce30bc893157e.png如果实在搞不清,那就请记住在定义参数时在前面都加上ByVal,这样可以避免某些意外的错误。

    返回数据系列引用区域地址

    再回到正题,我们再写一个Sub主过程调用上面的Function过程来返回数据系列引用区域的地址。代码分享
    Sub getsngseries()    Dim chtchart As Chart    Set chtchart = ActiveSheet.ChartObjects(1).Chart    Dim xh As Variant    xh = InputBox("输入要提取的数据系列序号:")    MsgBox rngseries(Int(xh), chtchart).Address     '利用Address属性输出地址    Set chtchart = NothingEnd Sub
    主过程中先定义了两个传递参数:数据系列序号xh变量,以及chtchart变量。其中xh变量利用InputBox函数输入。为方便演示,再在菜单栏下插入一个按钮控件(图2),右键编辑按钮文字,并指定给上述主过程(图3)。

    b4fc4d437f701d55a59f0d64ab37e351.png

    图2 插入按钮控件

    aea4114c94782ab2cf34af0f64b9170d.png

    图3 指定宏

    运行效果

    3ca673088f119e78aa0f0e43c2b5222f.gif

    图4 返回数据系列引用区域的地址

    总结本文分享了如何通过VBA快速返回图表中任意数据系列引用的单元格区域的地址,应用了Formula属性、Split函数、Function过程。尽管码了不少字,但这个功能貌似有点儿鸡肋,图表都有了,只要点到图表上睁眼看公式编辑框就好了。好吧,我承认我就是出于兴趣瞎玩一下子,望读者轻喷297823ec22d7c92e388e91ae46ec9511.png
    展开全文
  • 笔者最近在做一个数据库项目,其中需要从EXCEL提取关键字段。提取内容如下图所示,需要将图中加粗部分单独提出后进行去噪处理。如果通过word处理,文字量小的时候尚可实现,但几十万字的处理量很容易就造成假死。...
  • Excel一列值中去除重复项数据,多个Excel的单元sheet,拆分成单个excel文件。Excel的批注和备注信息提取
  • 一、需求说明有时我们需要从Word文档的表格里提取数据,比如word文档中的简历信息,需要将姓名、性别、籍贯等信息提取Excel工作表中,每个文档仅有一个人的简历。1.word文档截图2.excel工作表截图二、实现思路使用...
  • VBA 按行提取*.txt文件数据并写入Excel单元格
  • 相信很多小伙伴都碰到过乱七八糟的Excel文档,中英文数字全部混合在同一个单元格中,不是顺序位置错了,就是长度不一样,无论是使用Ctrl+E或者分列都没办将数据提取出来,其实这些都可以利用VBA快速解决。...
  • VBA脚本可以实现从word文档的多个表中提取数据,每个表格的信息提取到一行。 Sub word2els() Set wdApp = CreateObject(“kwps.application”) path_ = ThisWorkbook.Path wdApp.Documents.Open (path_ & “”...
  • 假如,我们现在需要额外提取一些新的单元格数据,直接在第 2 行后面,写上目标单元格就可以,无需修改代码。二、新对象/方法的介绍1. 小下划线 _ 和单引号 '分别为代码分行连接符,和注释符。2. DIR (pathname)◆...
  • VBA从SQL Server中提取数据Excel

    千次阅读 2009-07-29 15:14:00
    VBA从SQL Server中提取数据Excel中分享一段代码: 上个星期询问各方是否有以编程的方法, 将SQL Server的数据提取Excel中. 但均未有满意答复. 这也属于高手不屑于去做, 一般人又不懂的一个东西. 最后自力更生...
  • 本文以《Excel VBA——创建组合图表》中生成的图表为例讲述如何通过VBA中Series对象的Formula属性提取图表中数据系列的引用区域。如图1,图表中的“目标值”,“设计方案”,“偏差”就是构成图表的三个数据系列,每...
  • 各位朋友,你们好,今天和你们分享Excel提取不重复值的几种方法,着重介绍【5种】基础操作方法,另外附送一个VBA去重代码,拿去就可以直接使用。一、基础操作方法1、数据工具直接去重(见下图)数据工具去重2、高级...
  • 我有一些vba代码来打开基于filename-date的excel文件(即“test-09Sep2016.xlsm” .打开文件后,它会搜索工作簿并尝试查找我正在查找的内容 . 一旦它返回结果,它将关闭工作簿并循环遍历文件夹以查找下一个文件等等.....
  • ExcelVBA-AutoCompleteList:创建一个像自动完成这样的Google,以从列表中提取数据
  • iKB程序开发出来了,用的很好,很舒服。 用来管理自己的知识库是个非常好的工具,小到一个生字、...这不,学习数据分析的时候,有个很好的例子出现了,即:Excel报告自动化。 原示例用Excel连接Access,速度明显比Ora
  • Excel之家ExcelHome以下文章来源于VBA编程学习与实践 ,作者EH看见星光我们今天和大家分享的内容是如何用VBA代码查询两列数据差异。打个响指,举个栗子。如上图所示,查询A列和C列的数据提取出相同值、A列存在C列...
  • Sub getdata()Dim arr(1 To 10, 1 To 4), Company, Sdata$, brr, xCells.ClearOn Error Resume NextSet oDoc = CreateObject("htmlfile")Company = Application.InputBox("请输入你要查询的公司名称关键字:", "请...
  • stData 数据文件,rngConfig 配置文件 Public Function Run(ByRef stData As Worksheet, ByRef rngConfig As Range) As Worksheet 'On Error GoTo Proc_Err  Dim r_Config As Integer, str_ColumnName As String...
  • 相信很多小伙伴都碰到过乱七八糟的Excel文档,中英文数字全部混合在同一个单元格中,不是顺序位置错了,就是长度不一样,无论是使用Ctrl+E或者分列都没办将数据提取出来,其实这些都可以利用VBA快速解决。...
  • VBA 使用Excel数据库:行转列

    千次阅读 2016-06-07 11:34:36
    最近工作中有需求,要从Excel表中提取一些统计信息,因为需求变动可能比较频繁,所以用VBA来做了。调试数据操作部分颇费周折,涉及到行转列问题,特记录一下。

空空如也

空空如也

1 2 3 4 5 ... 11
收藏数 211
精华内容 84
关键字:

vba提取excel数据