'=======================================================
'1、循环单元格取数,效率最低,不可取,初学者易犯
'2、区域相等取数
'3、复制粘贴取数
'4、借助数组取数
'————以上4种都需要打开外部工作簿
'5、宏表函数取数(不打开工作簿)
'=======================================================
Private Sub GetValueFromOpenedWorkbook()
'打开工作簿取数
MyWorkbook As Workbook
Dim MyArry As Variant
Set MyWorkbook = Application.Workbooks.Open("D:\外部工作表.xlsx") '方法1:
' Dim i As Integer, j As Integer
' n2 = MyWorkbook.Sheets.Count
' For i = 7 To 56
' For j = 4 To 10
' Sheets("外部工作表").Cells(i, j) = MyWorkbook.Sheets("外部工作表").Cells(i, j)
' Next j
' Next i
'方法2:
' ThisWorkbook.Sheets("外部工作表").Range("d5:j56").Value = MyWorkbook.Sheets("外部工作表").Range("d5:j56").Value
'方法3:
' ThisWorkbook.Sheets("外部工作表").Range("d5:j56").Copy
' MyWorkbook.Sheets("外部工作表").Range("d5").PasteSpecial Paste:=xlPasteValues
'方法4:
MyArry = MyWorkbook.Sheets("外部工作表").Range("d5:j56").Value
ThisWorkbook.Sheets("外部工作表").Range("d5:j56") = MyArry
MyWorkbook.Close SaveChanges:=False
Set MyWorkbook = Nothing
End Sub '方法5:
Sub GetValueFromClosedWorkbook()
'不用打开工作簿取数
p = "D:\"
f = "外部工作表.xlsx"
s = "外部工作表"
Application.ScreenUpdating = False
For r = To
For c = To
a = Cells(r, c).Address
Cells(r, c) = GetValue(p, f, s, a)
Next c
Next r
Application.ScreenUpdating = True
End Sub Private Function GetValue(path, file, sheet, ref)
' 从未打开的Excel文件中检索数据
Dim arg As String
' 确保该文件存在
If Right(path, ) <> "" Then path = path & ""
If Dir(path & file) = "" Then
GetValue = "File Not Found"
Exit Function
End If
' 创建变量
arg = "'" & path & "[" & file & "]" & sheet & "'!" & Range(ref).Range("A1").Address(, , xlR1C1)
' 执行XLM 宏
GetValue = ExecuteExcel4Macro(arg)
End Function

Excel VBA 从外部工作簿取数的5种方法的更多相关文章

  1. Excel VBA 从一个工作簿查找另一个一个工作簿中的一些内容复制到另外一个工作簿

    帮朋友来写个Excel VBA 以前写过ASP,所以对vb略微熟悉,但VBA 没有仔细研究过. 以前只研究过 vba 写一个 计算个人所得税的程序. 这次写的功能也算是简单,但也耗费了两天的功夫. 需 ...

  2. Spark JDBC系列--取数的四种方式

    Spark JDBC系列--取数的四种方式 一.单分区模式 二.指定Long型column字段的分区模式 三.高自由度的分区模式 四.自定义option参数模式 五.JDBC To Other Dat ...

  3. 选中没有选中的复选框,匹配含有某个字符串的正则,json取值的两种方法,把变量定义在外面跟里面的区别

    一.筛选没有选中的复选框:not("input:checked") 二.匹配有VARCHAR的字符串:".*VARCHAR.*?" 三.json取值的两种方法 ...

  4. php抓取页面的几种方法详解

    本篇文章是对php抓取页面的几种方法进行了详细的分析介绍,需要的朋友参考下 在 做一些天气预报或者RSS订阅的程序时,往往需要抓取非本地文件,一般情况下都是利用php模拟浏览器的访问,通过http请求 ...

  5. Linux下查看线程数的几种方法汇总

    Linux下查看线程数的几种方法汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Linux下查看某个进程的线程数量 pstree命令以树状图显示进程间的关系(display ...

  6. (七)POI-读取excel,遍历一个工作簿

    原文链接:https://blog.csdn.net/class157/article/details/92816169,https://blog.csdn.net/class157/article/ ...

  7. 在VBA中新建工作簿

    用程序计算数据,得到不同公司.不同项目的数据结果,最终还要将每个公司的数据结果放在各自的单独文件中.这就需要在vba中新建.保存excel文件.掌握几个东西就能很熟练了:1.要想保存在当前目录下,需要 ...

  8. {matlab}取二值图像centroid几种方法性能比较

    试验很简单,取二值图像的质心,三种方法做比较 1.完全采用矩阵性能不做任何循环操作,对find后的值进行除法与取余操作,从而得到centroid 2.完全采用循环操作,最简单明了 3.结合1,2,对每 ...

  9. php取整的几种方法

    php取整的几种方式. floor 舍去法取整 语法格式:float floor ( float value )返回不大于value 的下一个整数,将value 的小数部分舍去取整.floor() 返 ...

随机推荐

  1. HTML基础之HTML标签

    前端的三把利器 HTML:赤裸的一个人 CSS:华丽的衣服 JS/JavaScript:赋予这个人的行为,也就是动起来 HTML(超文本标记语言) html代码实际上就是一套能够被浏览器所识别的规则代 ...

  2. Centos7下python3安装pip-9.0.1

    pip类似RedHat里面的yum,安装Python包非常方便.本节详细介绍pip的安装.以及使用方法 1.下载pip安装包 [root@localhost ~]# wget https://pypi ...

  3. CS190.1x-ML_lab3_linear_reg_student

    这次作业主要是有关监督学习,数据集是来自UCI Machine Learning Repository的Million Song Dataset.我们的目的是训练一个线性回归的模型来预测一首歌的发行年 ...

  4. 《Effective Java》学习笔记 —— 通用程序设计

    本章主要讨论局部变量.控制结构.类库.反射.本地方法的用法及代码优化和命名惯例. 第45条 将局部变量的作用域最小化 * 在第一次使用的它的地方声明局部变量(就近原则). * 几乎每个局部变量的声明都 ...

  5. Jmeter(十二)_打印时间戳

    Jmeter中提供了一种函数,可以打印时间戳,如下图 年: yyyy 月:MM 日:dd 时: HH 分: mm 秒:ss 关于时间戳的格式,可以自由组合定义,这里我写成这样 yyyy-MM-dd H ...

  6. zabbix设置微信报警的配置过程

    zabbix设置微信报警的配置过程 转发:https://blog.csdn.net/qq_31613055/article/details/78831607 微信企业号的申请 注册的地址https: ...

  7. Kaggle: Google Analytics Customer Revenue Prediction EDA

    前言 内容提要 本文为Kaggle竞赛 Google Analytics Customer Revenue Prediction 的探索性分析 题目要求根据历史顾客访问GStore的数据,预测其中部分 ...

  8. 【大数据实战】将普通文本文件导入ElasticSearch

    以<刑法>文本.txt为例. 一.格式化数据 1,首先,ElasticSearch只能接收格式化的数据,所以,我们需要将文本文件转换为格式化的数据---json. 下图为未处理的文本文件. ...

  9. PAT甲题题解-1011. World Cup Betting (20)-误导人的水题。。。

    题目不严谨啊啊啊啊式子算出来结果是37.975样例输出的是37.98我以为是四舍五入的啊啊啊,所以最后输出的是sum+0.005结果告诉我全部错误啊结果直接保留两位小数就可以了啊啊啊啊 水题也不要这么 ...

  10. 编写JDBC框架:(策略设计模式)

    package com.itheima.domain; //一般:实体类的字段名和数据库表的字段名保持一致 //约定优于编码 public class Account { private int id ...