请问如何使用vb调用 excel 文件?
我有一个名字为“百家姓”的excel文件。使用vb在窗口上随机输出10个百家姓。要求:一个按钮,两个文本框(一个用于填写输出随机数量,一个用于输出结果)例子:我在一个文本...
我有一个名字为 “百家姓”的excel文件。使用vb在窗口上随机输出10个百家姓。
要求:一个按钮,两个文本框(一个用于填写输出随机数量, 一个用于输出结果)
例子:我在一个文本框中,输入20,然后 点命令按钮。 在另一个文本框中,随机输出
“百家姓”文件中的20个姓氏。
先谢谢了。 展开
要求:一个按钮,两个文本框(一个用于填写输出随机数量, 一个用于输出结果)
例子:我在一个文本框中,输入20,然后 点命令按钮。 在另一个文本框中,随机输出
“百家姓”文件中的20个姓氏。
先谢谢了。 展开
2个回答
展开全部
添加引用 Microsoft Excel 12.0 Object Library (视你的office版本不同有所差异)
然后就可以用这个来编程啦
Dim xlapp As Excel.Application ‘代表excel程序
Dim wkBook As Excel.Workbook '代表excelworkbook(也就是excel工作簿文件 .xls .xlsx)
Dim wkSheet As Excel.Worksheet '代表excel的工作页
xlapp.Application.EnableEvents = False '禁止宏等提示的运行
Set wkBook = xlapp.Workbooks.Open(ExcelFileName)'wkBook对象,把ExcelFileName替换为你的真实文件 比如 app.path & "\" & "百家姓.xls"
Set wkSheet = wkBook.Worksheets(1) '选中某个sheet用工作页名字(Sheet1,Sheet2...) or 序号
for i = 1 to wkSheet.UsedRange.Rows.Count ' wksheet.usedrange.rows.count ‘使用区域.行.数
t1.text=t1.text & wkSheet.Cells(i, 2)+vbcrlf ’ cells(行,列) 如B1单元格就是cells(1,2),注意区别
next i
这个意思就是在文件本框t1里头显示excel文件第二列的内容。
我只给你一个例子,你完全可以照着这个去改成你自己要的东西。
你要的随机输出,可以生成范围在1 到 usedrange.rows.count的整数,重复20次。(当然你要更完美,可以做重复检测,确保生成20个不同的数),具体情况具体对待,你的excel什么结构,随机数范围也会因你的excel标题,统计栏而有所不同,你如果能看明白我上面的代码,就应该很容易写出你要的东西来。
你想知道你的对象有哪些属性,方法,你可以看vb的关键词提示,很直观。
然后就可以用这个来编程啦
Dim xlapp As Excel.Application ‘代表excel程序
Dim wkBook As Excel.Workbook '代表excelworkbook(也就是excel工作簿文件 .xls .xlsx)
Dim wkSheet As Excel.Worksheet '代表excel的工作页
xlapp.Application.EnableEvents = False '禁止宏等提示的运行
Set wkBook = xlapp.Workbooks.Open(ExcelFileName)'wkBook对象,把ExcelFileName替换为你的真实文件 比如 app.path & "\" & "百家姓.xls"
Set wkSheet = wkBook.Worksheets(1) '选中某个sheet用工作页名字(Sheet1,Sheet2...) or 序号
for i = 1 to wkSheet.UsedRange.Rows.Count ' wksheet.usedrange.rows.count ‘使用区域.行.数
t1.text=t1.text & wkSheet.Cells(i, 2)+vbcrlf ’ cells(行,列) 如B1单元格就是cells(1,2),注意区别
next i
这个意思就是在文件本框t1里头显示excel文件第二列的内容。
我只给你一个例子,你完全可以照着这个去改成你自己要的东西。
你要的随机输出,可以生成范围在1 到 usedrange.rows.count的整数,重复20次。(当然你要更完美,可以做重复检测,确保生成20个不同的数),具体情况具体对待,你的excel什么结构,随机数范围也会因你的excel标题,统计栏而有所不同,你如果能看明白我上面的代码,就应该很容易写出你要的东西来。
你想知道你的对象有哪些属性,方法,你可以看vb的关键词提示,很直观。
展开全部
在vb中引用excel。
Private Sub Command1_Click()
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim N As Integer
Dim i As Integer
Dim m() As Integer
N = Text1.Text
ReDim m(1 To N) As Integer
For i = 1 To N
m(i) = Int(100 * Rnd + 1)
Next i
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Open("E:\百家姓.xlsx")
xlapp.Visible = True
Set xlsheet = xlbook.Worksheets("Sheet1")
For i = 1 To N
Text2.Text = Text2.Text & xlsheet.Cells(m(i), 1) & vbCrLf
Next i
xlbook.Close (True)
xlapp.Quit
End Sub
Private Sub Command1_Click()
Dim xlapp As Excel.Application
Dim xlbook As Excel.Workbook
Dim xlsheet As Excel.Worksheet
Dim N As Integer
Dim i As Integer
Dim m() As Integer
N = Text1.Text
ReDim m(1 To N) As Integer
For i = 1 To N
m(i) = Int(100 * Rnd + 1)
Next i
Set xlapp = CreateObject("Excel.Application")
Set xlbook = xlapp.Workbooks.Open("E:\百家姓.xlsx")
xlapp.Visible = True
Set xlsheet = xlbook.Worksheets("Sheet1")
For i = 1 To N
Text2.Text = Text2.Text & xlsheet.Cells(m(i), 1) & vbCrLf
Next i
xlbook.Close (True)
xlapp.Quit
End Sub
追问
请问我的excel文件是竖行到51,横行到H ,如何在这个区域中输出随机内容。
还有这个每次新输出结论时,不删除原来的数据,应该在哪里加入删除元数据代码。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询