Excel中何如生成随机数据,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 , 程序就自动统计出各个办事处的及各个产品的有关计划数量及未完成数量 , 是不是很方便 。

推荐阅读