1. excel表格怎么随机抽取重复数据
1。如何实现VB与EXCEL的无缝连接
VB 是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一旦报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因为有很多程序员现在已经充分利用Excel的强大报表功能来实现。
但由于VB与Excel分别属于不同的应用系统,如何把它们有机地结合在一起,是一个值得我们研究的课题。
笔者在软件开发工作中,对VB的自动化功能和Excel的宏功能进行了一定的研究,实现了VB与Excel的有机结合。现提出来与大家探讨。
一、VB读写Excel表
VB本身的自动化功能可以读写Excel表,其方法如下:
1、在工程中引用Microsoft Excel类型库:
从“工程”菜单中选择“引用”栏;选择Microsoft Excel 9。
0 Object Library (Excel2000),然后选择“确定”。表示在工程中要引用Excel类型库。
2、在通用对象的声明过程中定义Excel对象:
Dim xlApp As Excel。Application
Dim XlBook As Excel。
WorkBook
Dim xlSheet As Excel。Worksheet
3、在程序中操作Excel表常用命令:
Set xlApp = CreateObject (“Excel。Application”)’创建Excel对象
Set XlBook = xlApp。
Workbooks。Open(“文件名”) ’打开已经存在的Excel工作薄文件
xlApp。Visible = True ’设置Excel对象可见(或不可见)
Set xlSheet = xlBook。Worksheets(“表名”)
xlSheet。
Cells(row,col) = 值 ’给单元格(row,col)赋值
xlSheet。PrintOut ’打印工作表
xlBook。CloseTrue ’关闭工作薄
xlApp。Quit ’结束Excel对象
Set xlApp = Nothing ’释放xlApp对象
xlBook。
RunAutoMacros xlAutoOpen ’运行Excel启动宏
xlBook。RunAutoMacros xlAutoClose ’运行Excel关闭宏
4、在运用以上VB命令操作Excel表时,除非设置Excel对象不可见,否则VB程序可继续执行其它操作,也能够关闭Excel,同时也可对Excel进行操作。
但在Excel操作过程中关闭Excel对象时,VB无法知道,如果此时使用Excel对象,则VB程序会出现自动化错误,形成VB程序无法完全控制Excel状况,使得VB与Excel脱节。
二、Excel的宏功能
Excel 提供了一个Visual Basic编辑器,打开Visual Basic编辑器,其中有一工程属性窗口,点击右键菜单的“插入模块”,则增加一个“模块1”,在此模块中可以运用Visual Basic语言编写函数和过程并称之为宏。
其中,Excel有两个自动宏:一个是启动宏(Sub Auto_Open()),另一个是关闭宏(Sub Auto_Close())。它们的特性是:当用Excel打开含有启动宏的工作薄时,就会自动运行启动宏,同理,当关闭含有关闭宏的工作薄时就会自动运行关闭宏。
但是通过VB的自动化功能来调用Excel工作表时,启动宏和关闭宏不会自动运行,而需要在VB中通过命令 xlBook。RunAutoMacros(xlAutoOpen)和xlBook。RunAutoMacros(xlAutoClose)来运行启动宏和关闭宏。
三、VB与Excel的相互沟通:
充分利用Excel的启动宏和关闭宏,可以实现VB与Excel的相互沟通,其方法如下:
在Excel的启动宏中加入一段程序,其功能是在磁盘中写入一个标志文件,同时在关闭宏中加入一段删除此标志的程序。
VB程序在执行时通过判断此标志文件存在与否来判断Excel是否打开,如果此标志文件存在,表明Excel对象正在运行,应该禁止其它程序的运行。如果此标志文件不存在,表明Excel对象已被关闭,此时如果要使用Excel对象运行,必须重新创建Excel对象。
四、举例
1、在VB中,建立一个FORM,在其上放置两个命令按钮,将Command1的Caption属性改为Excel,Command2的Caption属性改为End。然后在其中输入如下程序:
Dim xlApp As Excel。
Application '定义Excel类
Dim xlBook As Excel。Workbook '定义工作薄类
Dim XlSheet As Excel。Worksheet '定义工作表类
Private Sub Command1_Click() '打开Excel过程
If Dir(“D:\temp\ ”)= “”Then '判断Excel是否打开
Set xlApp = CreateObject(“Excel。
Application”) '创建Excel应用类
xlApp。Visible = True '设置Excel可见
Set xlBook = xlApp。Workbooks。Open(“D:\temp\bb。xls”) '打开Excel工作薄
Set xlSheet = xlBook。
Worksheet(1) '打开Excel工作表
xlSheet。Activate '激活工作表
xlSheet。Cells(1,1) = “abc” '给单元格1行驶列赋值
xlBook。RunAutoMacros(xlAutoOpen) '运行Excel中的启动宏
Else
MsgBox(“Excel已打开”)
End If
End Sub
Private Sub Command2_Click()
If Dir(“D:\temp\ ”)<> “” Then '由VB关闭Excel
xlBook。
RunAutoMacros(xlAutoClose) '执行Excel关闭宏
xlBook。Close(True)关闭Excel工作薄
xlApp。Quit '关闭Excel
End If
Set xlApp = Nothing '释放Excel对象
End
End Sub
2、在D盘根目录上建立一个名为temp的子目录,在temp目录下建立一个名为“bb。
xls”的Excel文件。
3、在“bb。xls”中打开Visual Basic编辑器,在工程窗口中点鼠标键选择插入模块,在模块中输入以下程序存盘:
Sub auto_open()
Open “d:\temp\ ” For Output As #1
Close #1
End Sub
Sub auto_close()
Kill “d:\temp\ ”
End Sub
4、运行VB程序,点击Excel按钮可以打开Excel系统,打开Excel系统后,VB程序和Excel分别属两个不同的应用系统,均可同时进行操作,由于系统加了判断,因此在VB程序中重复点击Excel按钮时会提示Excel已打开。
如果在Excel中关闭Excel后再点Excel按钮,则会重新打开Excel。而无论Excel打开与否,通过VB程序均可关闭Excel。这样就实现了VB与Excel的无缝连接。
2。用VB。NET结合Excel设计统计生产报表
用EXCEL做企业生产报表的理由
Excel表格生成和公式设置十分强大便利,是一个强有力的信息分析与处理工具。
特别是EXCEL的公式、函数、VBA语言,功能极其强大。我试用过其他电子表格软件,在功能上和EXCEL根本没有可比性。
Visual Studio ,NET也同样是MicroSoft的产品,Visual Studio ,NET调用EXCEL做企业报表十分方便。
证明当时我选Visual Studio ,NET作为首选开发工具是正确的。
软件构思
先在EXCEL里定制好名为《统计表》的样表(模版),,在样表中设置好各种格式,填写好固定项。
在窗体上放很三个控件,两个DateTimePicker控件,用来选择开始统计时间和结束统计时间。
一个Button以启动程序。
软件欲实现的功能是:点击Button1,自动查找符合日期符合日期范围的生产计划工作表,然后利用SortedList统计各个办事处的计划数量和未完成数量,及各个产品型号的计划数量和未完成数量。再把SortedList的数据读出写到《统计表》中。
这里要注意的是,各个生产报表格式必须规范统一,因为程序是按照固定单元格位置读取数据的。
SortedList类
除了具备VB,NET调用EXCEL的基础知识外,本例主要用到SortedList类。
SortedList类表示键/值对的集合,这些键和值按键排序并可按照键和索引访问。
SortedList 是 Hashtable 和 Array 的混合。当使用 Item 索引器属性按照元素的键访问元素时,其行为类似于 Hashtable。当使用 GetByIndex 或 SetByIndex 按照元素的索引访问元素时,其行为类似于 Array。
SortedList 在内部维护两个数组以将数组存储到列表中;即,一个数组用于键,另一个数组用于相关联的值。每个元素都是一个可作为 DictionaryEntry 对象进行访问的键/值对。键不能为空引用(Visual Basic 中为 Nothing),但值可以。
SortedList 的容量是列表可拥有的元素数。随着向 SortedList 中添加元素,容量通过重新分配按需自动增加。可通过调用 TrimToSize 或通过显式设置 Capacity 属性减少容量。
SortedList 的元素将按照特定的 IComparer 实现(在创建 SortedList 时指定)或按照键本身提供的 IComparable 实现并依据键来进行排序。
不论在哪种情况下,SortedList 都不允许重复键。
VB,NET结合EXCEL统计生产报表
以下是实现代码,供参考。为方便初学者,部份地方加以注释。
现在让我们来试用一下,先选择开始统计时间和结束统计时间,点击Button1,程序就自动统计出各个办事处的及各个产品的有关计划数量及未完成数量,是不是很方便。
。
2. excel随机抽取多个数据
EXCEL中随机抽取100行,可添加辅助列,输入随机函数rand(),再使用筛选,筛选最小的100个或最大的100个,即可。
3. excel中随机重复在哪里
1.打开Excel文件,选定要显示重复内容的单元格区域。
2.单击“开始”选项卡“样式”组中的“条件格式”命令,鼠标指向“突出显示单元格规则”选项,在弹出的级联菜单列表中选择“重复值”。
3.弹出“重复值”设置对话框,设置“重复”值单元格的格式后点击“确定”。
4.设置完成,所选区域的重复值就被以所设定的格式突出显示出来了。
4. excel表格怎么随机抽取重复数据公式
1、首先打开excel表格,在A列和B列中分别输入两组数据,其中有重复值。
2、然后在C1单元格中输入公式:=IF(COUNTIF(B:B,A1),A1,""),意思是用A1单元格的数值在B列中查重,如果有重复值就在单元格中显示重复的数值。
3、点击回车,即可看到C1单元格没有显示数据,则表示A1单元格在B列中没有重复值。
4、将C1单元格的公式向下填充,即可看到A列和B列中重复的数值已经显示在C列中了
5. excel抽取随机数不重复
1、首先在excel表格中输入随机函数公式:=rand()。
2、点击回车并下拉公式即可得到一组随机函数,先将该组随机函数复制粘贴为数值,将其固定显示在单元格中。
3、然后再其右侧的空白单元格中输入公式:=RANK($B$3:$B$12,$B$3:$B$12)。
4、点击回车并下拉公式即可得到一组不重复的随机整数。
6. 如何在excel随机抽取数据且不重复
1.新建一个EXCEL工作表,而后打开,在A列输入文本,要求在后面的几列,提取A列的不重复值
2.方法1:在C2单元格输入公式=INDEX($A$1:$A$21,SMALL(IF(MATCH(A$2:A$21,A$2:A$21,)=ROW($2:$21)-1,ROW($2:$21)),ROW(A1)))&"",而后按三键结束,获取第一个值后,下拉公式,即可获取
3.方法2:在D2单元格输入公式=INDEX($A$1:$A$21,MATCH(,COUNTIF(D$1:D1,A$2:A$21),)+1)&"" 而后按三键结束,获取第一个值后,下拉公式,即可获取
4.方法3:在E2单元格输入公式=INDEX($A$1:$A$21,MIN(IF(COUNTIF(E$1:E1,A$2:A$22)=0,ROW($2:$22))))&"",而后按三键结束,获取第一个值后,下拉公式,即可获取
5.方法4:在F2单元格输入公式=INDIRECT("A"&MIN(IF(COUNTIF(F$1:F1,A$2:A$21)=0,ROW($2:$21))))&""而后按三键结束,获取第一个值后,下拉公式,即可获取
6.方法5:在G2单元格输入公式:=LOOKUP(,1/(COUNTIF(G$1:G1,A$2:A$21)-1),A$2:A$21) 而后下拉
7.在H2单元格输入公式=OFFSET($A$1,MIN(IF(COUNTIF($H$1:H1,$A$2:$A$21)=0,ROW($A$2:$A$21)))-1,) 而后按三键结束,获取第一个值后,下拉公式,即可获取
8.方法8:在I2单元格输入公式:=OFFSET($A$1,MATCH(,COUNTIF($I$1:I1,$A$2:$A$21),),)&""而后按三键结束,获取第一个值后,下拉公式,即可获取
9.在J2单元格输入公式:=OFFSET(A$1,MATCH(0,COUNTIF(J$1:J1,A$1:A$99),0)-1,,,)&"",而后按三键结束,获取第一个值后,下拉公式,即可获取
7. excel选取重复数据
1、首先打开excel表格,在A列和B列中分别输入两组数据,其中有重复值。
2、然后在C1单元格中输入公式:=IF(COUNTIF(B:B,A1),A1,""),意思是用A1单元格的数值在B列中查重,如果有重复值就在单元格中显示重复的数值。
3、点击回车,即可看到C1单元格没有显示数据,则表示A1单元格在B列中没有重复值。
4、将C1单元格的公式向下填充,即可看到A列和B列中重复的数值已经显示在C列中了
8. 从一组数据中随机抽取不重复
> 可以利用迭代计算来解决这个问题,本文以用公式生成10个和值为1000,且范围在80-120之间的随机整数为例,说明Excel中用迭代计算的解决方法。 1.启用迭代计算。在Excel2013中,单击“文件→选项→公式”,勾选“启用迭代计算”,根据实际需要调整“最多迭代次数”数量,本例为默认的“100”,将“误差”设为“0”。 2.在A2单元格输入公式: =RANDBETWEEN(80,120) 3.在A3单元格输入公式:=IF(SUM(A$2:A$11)=1000,A3,RANDBETWEEN(80,120)) 4.然后拖动填充柄填充公式到A11单元格。这时即可得到10个和值为“1000”,且范围在80-120之间的随机整数。
9. excel表格怎么自动筛选重复数据
1、打开Excel表格,在表格的“sheet1”单元格中输入一串数值。
2、打开“sheet2”,在单元格中也输入一串数值,该数值与“sheet1”有相同的数字也有不同的数字。
3、在“sheet1”的界面中,在B1单元格输入函数公式:=IF(COUNTIF(Sheet2!A:A,Sheet1!A2)>0,"是","否")4、然后点击回车,在B1单元格生成计算结果,显示为“否”,表示sheet1和sheet2中没有匹配的数据。5、点击B1单元格,向下拖拽公式填充所有需要匹配的单元格,即可得到对应的匹配数据,相同的部分显示的为“是”,将其挑选出来即可。
10. excel表格抽取不重复的数
1. 打开Excel表格. 2. 选中需要筛选重复值的单元格. 3. 在“开始”选项卡中,选择“条件格式”——“突出显示单元格规则”——“重复值”.
- 相关评论
- 我要评论
-