Excel VBA 从外部工作簿取数的5种方法

'======================================================='1、循环单元格取数,效率最低,不可取,初学者易犯'2、区域相等取数'3、复制粘贴取数'4、借助数组取数'————以上4种都需要打开外部工作簿'5、宏表函数取数(不打开工作簿)'=======================================================PrivateSubGetValueFromOpenedWorkbook()'打开工作簿取数MyWorkbookAsWorkbookDimMyArryAsVariantSetMyWorkbook=Application.Workbooks.Open("D:外部工作表.xlsx")'方法1:'DimiAsInteger,jAsInteger'n2=MyWorkbook.Sheets.Count'Fori=7To56'Forj=4To10'Sheets("外部工作表").Cells(i,j)=MyWorkbook.Sheets("外部工作表").Cells(i,j)'Nextj'Nexti'方法2...

VBAExcel使用SQL进行查询

SubQuery()DimConnAsObject,RstAsObjectDimstrConnAsString,strSQLAsStringDimiAsInteger,PathStrAsStringSetConn=CreateObject("ADODB.Connection")SetRst=CreateObject("ADODB.Recordset")PathStr=ThisWorkbook.FullName'设置工作簿的完整路径和名称SelectCaseApplication.Version*1'设置连接字符串,根据版本创建连接CaseIs<=11strConn="Provider=Microsoft.Jet.Oledb.4.0;ExtendedProperties=excel8.0;Datasource="&PathStrCaseIs>=12strConn="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="&PathStr&";ExtendedProperties=""Excel12.0;HDR=YES...

Excel:公式中的这些特殊数字

19E+3079E+307是科学计数法表示的一个数字,就简单理解成是Excel支持的一个很大的数字就可以了。用法示例:=LOOKUP(9E+307,A:A)根据LOOKUP函数的性质,提取A列最后一个数字。24^8或65536或1004^8=4的8次方=65536,也是一个比较大的数字。因为2003版最大支持65536行,所以以前会经常看到这个数字。一般用途是排除错误值,当公式下拉超过实际返回数据行数后显示空值。用法示例:=INDEX(A:A,SMALL(IF(A$2:A$5>80,ROW(A$2:A$5),4^8),ROW(A1)))&""公式意思是将A列大于80的数值顺序输出来。因为原始数据一共有2个大于80,当公式下拉到第3个单元格时,因为已经没有要输出的数据了,所以就引用了A列的第4^8(65536)个单元格(一个用不到的空单元格),这样就返回了空值。如果原始数据一共就80多行,那么第100行就是用不到的空单元格,公式中的4^8也可以替换成100。31和0这两个数字用法实在是太多了。比如:0可以在判断的时候当FALSE用,可以用某些文本数字+0变成数值,用-(0&...

Excel公式应用技巧汇总

1、合并单元格添加序号:=MAX(A$1:A1)+1  不重复的个数:公式1:{=SUM(1/COUNTIF(A2:A8,A2:A8))}公式2:{=SUM(--(MATCH(A2:A8,A2:A8,0)=(ROW(A2:A8)-1)))}公式3:=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))提取不重复的内容:=INDEX(A:A,1+MATCH(,COUNTIF(C$1:C1,A$2:A$10),))&"" 将下面数据中,小于120的显示为120,大于150的显示为150,中间的数据保持不变。 逆向查询:=LOOKUP(1,0/(D2=B2:B6),A2:A6) 个人所得税:=ROUND(MAX((E2-3500)*0.1*{0.3,1,2,2.5,3,3.5,4.5}-5*{0,21,111,201,551,1101,2701},0),2)根据个税倒推税前工资:=ROUND(MIN(((E2+5*{0,21,111,201,551,1101,2701})/({0.3,1,2,2.5,3,3.5,4.5...

Excel:一维表和二维表 互转

一、一维表转二维表数据源:一份流水账式的值班表,为了便于打印张贴,现在需要使其变成这样的样式:也就是从一维表变成传说中的二维表。1、新建查询依次单击【数据】→【新建查询】→【从文件】→【从工作簿】找到存放的工作簿,导入。2、打开查询编辑器在【导航器】对话框中,单击工作表名称,【编辑】。进入到【查询编辑器】界面。单击【转换】→【透视列】在【透视列】对话框中,值列选择Column3,也就是老师姓名所在列。聚合值函数选择“不要聚合”。数据表结构马上变成了下面的样子:如果有空白行或是空白列,可以将其删除掉。3、上载查询结果单击【开始】→【关闭并上载】在Excel中自动新建一个工作表,妥了:二、二维表转一维表数据如下: 步骤一依次按Alt D P调出数据透视表和数据透视图向导 步骤二选中创建单页字段,下一步 步骤三选定数据区域,下一步 步骤四选择数据透视表显示位置,完成 步骤五双击透视表右下角的“总计”单元格 效果如图: 步骤六删除D列,修改表头和设置格式 ...
代码星球 代码星球·2021-02-15

Excel:函数中的万金油:INDEX+SMALL+IF+ROW

 很多人在Excel中用函数公式做查询的时候,都必然会遇到的一个大问题,那就是一对多的查找/查询公式应该怎么写?大多数人都是从VLOOKUP、INDEX+MATCH中入门的,纵然你把全部的多条件查找方法都学会了而且运用娴熟,如VLOOKUP和&、SUMPRODUCT、LOOKUP(1,0/....,但仍然只能对这种一对多的查询望洋兴叹。 这里讲的INDEX+SMALL+IF+ROW的函数组合,号称“万能”的函数组合,就是解决一对多查询的一种通式,如果你能掌握,那在Excel里基本上就没有什么查询你是实现不了的了(除了INDIRECT+RC引用)。这个函数的特点是:能提取出满足某条件或某些条件的所有数据,可以一次性返回单行单列或多行多列的结果。让我们通过一个实例来认识一下它们到底有多“万能”吧! 1、公式应用情景介绍如下图,A1:F9单元格为某次考试结果,每个人一行数据。现在需要在B11单元格(棕色底色填充)输入班级名称,在A14:F21区域返回该班级所有学生考试成绩信息。本例假设需要查询【1班】所有学生的成绩。 2、解决问题思路分析我们的...

Excel 2013中单元格添加下拉列表的方法

使用Excel录入数据的时候我们通常使用下拉列表来限定输入的数据,这样录入数据就很少发生错误了。Excel2013较以前的版本发生了很大的变化,那么在Excel2013是如何添加下拉列表的呢?下面Office办公助手的小编就以“性别”中下拉选择男女为例,讲解下Excel2013中添加下拉列表的方法。更复杂的大家可以举一反三,方法是一样的。1、首先要选中你要添加下拉列表的单元格。2、在菜单栏上选择数据--数据验证--数据验证。3、打开如图所示的对话框,切换到设置选项下。4、将允许条件设置为序列,如图所示,并勾选后面的两个选项。5、接着设置来源为男女,记得两个字之间有一个逗号。6、到这里,这个单元格已经设置完毕,我们可以使用快速填充来对整列进行填充。7、拖动单元格的右下角,向下拖动即可完成快速填充。8、我们看到这列单元格都具有了下拉列表。...

【php】phpExcel使用教程,如何导出excel表格

【1】下载phpExcel类文件可在官方去下载我们只需要classes中的文件,把Classes文件复制到项目中只需要2个文件就可以了 一个就是phpExcel(刚才我们复制过来的文件Classse改成的phpExcel) ,再自己创建一个文件index.php,代码内容如下【1】最基本用法--直接可以保存到当前文件夹下1<?php2$dir=dirname('__FILE__');//找到当前脚本所在路径3require$dir."/phpExcel/PHPExcel.php";//引入文件4$objPHPExcel=newPHPExcel();//实例化PHPExcel类,等同于在桌面上创建一个ecxel表格5$objSheet=$objPHPExcel->getActiveSheet();//获取当前活动sheet的操作对象6$objSheet->setTitle('dome');//给当前的活动sheet设置名称7//填充数据8$objSheet->setCellValue("A1",'姓名')->setCellValue("B...

asp.net 下载Excel (数据流,不保存)--客户端

效果图:前端页面<html><head><title>TestForExcel</title><scriptsrc="js/jquery.js"/><scripttype="text/javascript">functionbtnDownExel_Click(){varurl="TScheduleRExcelDown.aspx";window.open(url);}</script></head><body><divclass="form-group"style="margin-left:15%"><inputtype="button"name="btnSearch"id="btnDownExel"class="btnbtn-default"onclick="btnDownExel_Click()"value="DownExcel"/></div></body></html>后台页面:TScheduleRExcelDow...

plsql 将表结构导出到excel中的两种方式

 1.情景展示  如何将表结构导出到excel中(不是建表的SQL语句),如何实现?2.方式一  新建一个SQL窗口,输入要导出结构的表,选中右键--》描述  右键--》导出--》CSV文件  保存到桌面,并为该文件起个名字。   打开该文件,如下图所示3.方式二SELECTT1.TABLE_NAMEAS"表名称",T3.COMMENTSAS"表说明",T1.COLUMN_NAMEAS"字段名称",T1.DATA_TYPEAS"数据类型",T1.DATA_LENGTHAS"长度",T1.NULLABLEAS"是否为空",T2.COMMENTSAS"字段说明",T1.DATA_DEFAULT"默认值"FROMCOLST1LEFTJOINUSER_COL_COMMENTST2ONT1.TABLE_NAME=T2.TABLE_NAMEANDT1.COLUMN_NAME=T2.COLUMN_NAMELEFTJOINUSER_TAB_COMMENTST3ONT1.TABLE_NAME=T3.TABLE_NAMEWHERENOTEXISTS(SELECTT4.OBJECT_NA...

plsql excel导入报错:未发现数据源名称并且未指定默认驱动程序

  1.情景展示使用plsql的odbc导入器,导入excel数据时,报错信息如下:  anydac未发现数据源名称如何处理2.原因分析  操作系统的问题,我的是64位的系统,plsql支持32位的odbc驱动!3.解决方案  第一步:运行C:WindowsSysWOW64odbcad32.exe  出现这个界面  第二步:点击“添加”,选择“MicrosoftExcelDriver(*.xls)”--》完成  第三步:  数据源名称后面写上:ExcelFiles-xls,说明里写上:Excel驱动(仅支持xls格式);  版本选择默认选中Excel97-2000,无需修改,工作簿也不需要添加。4.效果展示  驱动添加成功。   打开plsql-->工具-->ODBC导入器-->这个时候,第一个选项里面就有刚才添加的驱动了。  输入要导入数据库的用户名和密码-->连接  不再报错--》连接成功!  更改磁盘路径找到,你要导入的excel文件。   注意:  这里添加的ODBC驱动,只支持xls格式的文件导入,并不支持xls...

kettle 如何将excel文件导入oracle数据库?

 1.情景展示  昨日,有一批数据需要导入数据库,但是,plsql不知为何不能导了,于是,我选择使用kettle完成excel数据的导入。 2.准备工作  将对应的数据库所需的jar包拷贝至其lib目录下3.具体操作  第一步:启动Spoon.bat文件;  第二步:核心对象--》输入--》Excel输入;  选中Excel输入--》将其拖拽至右侧空白区域  第三步:双击该图标进行编辑;  选择对应的excel文件的版本  点增加按钮,文件会被添加到这里  切换到工作表  点击获取工作表名称--》会获取到该excel文件的所有工作表呈现在3上--》双击你要导入的工作表会跑到4上   点“确定”按钮  切换到字段视图--》点击获取来自头部数据字段...   第四步:输出--》表输出--》将其拖拽至右侧空白区域任意位置;  第五步:双击该图标进行编辑;  随便定义个连接名称,设置IP,数据库实例名称,端口号,用户名,密码。   测试数据库连接--》确定--》确认  目标模式--》点击浏览--》选择数据库的用户名;  目标表--》点击浏览--...

Excel 2016双击文件打开为空白的问题解决

故障描述:安装Office2016后,双击EXCEL文件打开后显示为空白。解决办法:开始——运行——regedit修改HKEY_CLASSES_ROOTExcel.Sheet.12shellOpencommand项默认值(Excel.Sheet.8也要一起改)。原值:"C:ProgramFilesMicrosoftOfficeRootOffice16EXCEL.EXE"增加"%1",如下:"C:ProgramFilesMicrosoftOfficeRootOffice16EXCEL.EXE""%1"有的带/dde后缀,或者将/dde修改为"%1"即可保存即可。 ...

Python openpyxl excel操作的封装整理笔记

 包导入及获取表fromopenpyxlimportload_workbookwb=load_workbook('10000_nolog_hist.xlsx')table=wb["Sheet1"]读取某张表中唯一地址上的值table:表area:分区start:起始位置defread_one(table,area,start):addr=area+str(start)returntable[addr].value读取某张表中多个地址上的值table:表area:分区start:起始位置gap:间隔count:读取多少个defread_many(table,area,start,gap,count):list=[]foriinrange(count):addr=area+str(start)list.append(table[addr].value)start+=gap  returnlist在某张表中唯一地址上插入一个值definsert_one(table,area,start,data):addr=area+str(start)table[addr]=data在某张表中多...

Excel 读写

一、环境准备:pom.xml导入依赖 poi-ooxml<dependencies><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.17</version></dependency></dependencies>二、Excel读取=》封装成对象思路:将excel中的每一行row封装成对象cases,将对象cases保存到listCases集合方便后续调用!1.创建对象cases1packagecn.xiaobing.pojo;23/**1.创建实体类4*2.生成get和set方法5*3.提供有参和无参构造器6*4.重写toString方法7*@authorAdministrator8*/9publicclassCases{10privateStringcaseId;11privateStringinterfaceName;12p...
代码星球 代码星球·2021-02-14
首页上一页...34567...下一页尾页