使用VS 2015软件利用VB.NET编程操作excel 怎么样像Excel VBA那样将区域单元格直接读入数组?

2024-11-27 12:03:48
推荐回答(4个)
回答1:

'首先通过菜单[项目] -- [添加引用],选择[COM]选项卡,选择“Microsoft Excel XX.0 Object Library”,[确定]。

添加一个按钮:
试试下面的代码:注意版本;先建立以个EXCEL文件保存到c:\下面,我的计算机是安装OFFICE 2010。
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim AppXls As Microsoft.Office.Interop.Excel.Application '声明Excel对象
Dim AppWokBook As Microsoft.Office.Interop.Excel.Workbook '声明工作簿对象
Dim AppSheet As New Microsoft.Office.Interop.Excel.Worksheet '声明工作表对象

AppXls = New Microsoft.Office.Interop.Excel.Application '实例化Excel对象
AppXls.Workbooks.Open("C:\工作簿1.xlsx") '打开已经存在的EXCEL文件
AppXls.Visible = False '使Excel不可见

'AppWokBook = New Microsoft.Office.Interop.Excel.Workbook '绝亏实例化工作簿对象
'AppSheet = New Microsoft.Office.Interop.Excel.Worksheet '实例化工作表对象

AppWokBook = AppXls.Workbooks(1) 'AppWokBook对象指向工作簿"C:\学生成绩.xls"
AppSheet = AppWokBook.Sheets("Sheet1") 'AppSheet对象指向AppWokBook对象中的表“Sheet1”,即:"C:\学生成绩.xls"中的表“Sheet1”

'下面举一些例模宏空子:
'1、如果不声明工作表对象 AppSheet ,那么应用AppWokBook对象中的表“Sheet1”的语句就是:AppWokBook.Sheets("Sheet1")
'2、如果不声明工作簿对象 AppWokBook ,那么应用"C:\学生成绩.xls"中的表“Sheet1”的语句就是:AppXls.Workbooks("C:\学生成绩.xls").Sheets("Sheet1")

'要读取数据表"Sheet1"中的单元格“A1”的值,到变量S1里
Dim S1 As String
'方法一
S1 = AppXls.Workbooks(1).Sheets("Sheet1").Range("A1").Value
MsgBox(S1)

'方法旦瞎二
S1 = AppWokBook.Sheets("Sheet1").Range("A1").Value
MsgBox(S1)

'方法三
S1 = AppSheet.Range("A1").Value
MsgBox(S1)

'把数据写入到单元格“H2”,就是第2行第8个单元格
'方法一
AppXls.Workbooks(1).Sheets("Sheet1").Cells(2, 8).Value = "您好!"
S1 = AppXls.Workbooks(1).Sheets("Sheet1").Cells(2, 8).Value '为了验证,读取并显示它
MsgBox(S1)

'方法二
AppWokBook.Sheets("Sheet1").Cells(2, 8).Value = "你们好!"
S1 = AppWokBook.Sheets("Sheet1").Cells(2, 8).Value '为了验证,读取并显示它
MsgBox(S1)

'方法二
AppSheet.Cells(2, 8).Value = "大家好!"
S1 = AppSheet.Cells(2, 8).Value '为了验证,读取并显示它
MsgBox(S1)

'使用完毕必须关闭EXCEL,并退出
AppXls.ActiveWorkbook.Close(SaveChanges:=True)
AppXls.Quit()

'完成此程序,打开EXCEL检查,可以看到在“Sheet1”表的单元格“H2”里是文本“大家好!”

End Sub
End Class

回答2:

dim arr=excelapp.sheets(1).range("耐老a1:h1000").value
不能颂汪dim arr(),只能昌樱升dim arr

回答3:

我也遇到了同样的问题,如果vs可以像vba中直接赋值给二孙瞎维数组就好了,不知神衡道楼主的问题解决了没有,我也已经纠结了两天,求楼主分享解决办游凯做法

回答4:

同问,MSDN论坛的示例全英语,看不懂