求一段关于VB中和Excel的程序。
2。经过一段程序分析,把结果导出成Excel文件。
非常感谢指导!
举个具体例子吧:(1)用VB打开一个 “数据.xls”,里面的工作表“工作量表”里有 姓名、工作日期、科目(科目1、科目2、....)、日工作量(值为1-100)四列。
(2)用VB程序完成的分析为: a)VB中选择统计日期,用日期选择框,或者自己输入(用于计算与工作日期相差天数N) b)Excel中生成一个新变量 “总工作量”(计算方法为N*日工作量) C)Excel中再生成一个新变量“等级” 划分总工作量的等级,<100为1,100-500 为2,>=500为3(3)导出保存分析结果为 “数据分析结果.xls”。 (4) 要是还能继续在上面基础上筛选出内容为科目2、等级为2的所有行,作为另一个Excel保存更完美了。非常感谢!求高手指导! 能完成其中的一个步骤也是非常好的! 展开
Private Sub Command1_Click()
Dim xlApp As Object '定义Excel应用程序对象
Dim xlBook As Object '定义工作簿对象
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open(App.Path & "\Book1.xls") '打开已经存在的EXCEL工件簿文件
'xlApp.Visible = True '设置EXCEL对象可见(或不可见)
Dim i As Integer, n As Integer
For i = 1 To xlBook.Worksheets("Sheet1").UsedRange.Rows.Count 'Sheet1 的总行数
ListView1.ListItems.Add , , i
For n = 1 To xlBook.Worksheets("Sheet1").UsedRange.Columns.Count 'Sheet1 的总列数
ListView1.ListItems(i).SubItems(n) = xlBook.Worksheets("Sheet1").Cells(i, n) 'Sheet1 的 i行n列中的数据
DoEvents
Next n
Next i
'xlBook.Worksheets("Sheet1").Cells(i + 1, 1) = Now
xlBook.Close
xlApp.Quit '结束EXCEL对象
End Sub
'Microsoft Windows Common Controls 5.0 (SP2) ListView1
Private Sub Form_Load()
ListView1.View = lvwReport
ListView1.ColumnHeaders.Add , , "序号", 700
ListView1.ColumnHeaders.Add , , "a", 1200
ListView1.ColumnHeaders.Add , , "b", 1200
ListView1.ColumnHeaders.Add , , "c", 1200
ListView1.ColumnHeaders.Add , , "d", 1200
ListView1.ColumnHeaders.Add , , "e", 1200
ListView1.FullRowSelect = True '可以选中一整行
ListView1.GridLines = True '显示表格
End Sub
''给你个例子
''Excel文件大的话VB打开都要一大半天,我是想说用这个速度太慢了哦,
下面是打开的效果
非常感谢!不知道VB加载数据怎么慢,现在我已经改变思路了,用VB来操作Excel执行。您能否帮忙解决这个问题:
请问vb 操作两个excel比如 :aa.xls 和bb.xls,要把aa中第一个工作表中 筛选A列值为1,B列值为2的所有行
复制到bb中第二个工作表中,程序是什么呢?
我思路是统计aa行数NN,按照条件筛选,复制1到NN+1行,然后粘贴到bb中,但不会表达
谢谢回答,我能看懂程序,只是不会写。我已经补充了问题了,请你看看
关于步骤4中提到的期望,你从 “数据分析结果.xls”中自己筛选不就可以了吗?你是觉得这样麻烦,希望所有的东西都能自动完成吗?
其实,上面所有提到的需求都直接通过公式和现有功能来实现更方便,简单,别人也更容易看懂和维护,这些比较容易实现的东西,为啥还要用VBA来解决呢?