我想通过一个FIND方法来定位EXCEL里面的数据,然后把相关的数据录入到ACCESS里面中间用ADO来做数据库的操作
但用FIND方法时缺遇到了问题,本来在EXCEL的VBA已经能够成功运行的语句,复制到VB里面缺出现类型匹配的问题??请教请教Dim ExcelAP As New Excel.Application
Dim ExcelWBk As New Excel.Workbook
Dim ExcelWS As New Excel.Worksheet
Set ExcelWBk = ExcelAP.Workbooks.Open(ExPath) ’EXPATH是个外界传入的参数
Set ExcelWS = ExcelWBk.Sheets(1)
Dim d As Excel.Range ‘这句诗我后来加进去的,但还是不行,在VBA环境中,没有这句的
d = ExcelWS.Cells.Range("a1", "d4").Find(What:=j, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False)
If Not d Is Nothing Then
Form2.Text2 = "1"
d.Interior.ColorIndex = 38
rs1.AddNew
rs1.Fields(1) = CStr(d)
rs1.Fields(2) = CStr(ExcelWS.Cells(d.Row, d.Column + 1))
rs1.Update
Else
Form2.Text2 = "2"
End If运行时出错,粗体部分出现问题。。错误:类型不匹配
但用FIND方法时缺遇到了问题,本来在EXCEL的VBA已经能够成功运行的语句,复制到VB里面缺出现类型匹配的问题??请教请教Dim ExcelAP As New Excel.Application
Dim ExcelWBk As New Excel.Workbook
Dim ExcelWS As New Excel.Worksheet
Set ExcelWBk = ExcelAP.Workbooks.Open(ExPath) ’EXPATH是个外界传入的参数
Set ExcelWS = ExcelWBk.Sheets(1)
Dim d As Excel.Range ‘这句诗我后来加进去的,但还是不行,在VBA环境中,没有这句的
d = ExcelWS.Cells.Range("a1", "d4").Find(What:=j, After:=ActiveCell, LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, MatchByte:=False, SearchFormat:=False)
If Not d Is Nothing Then
Form2.Text2 = "1"
d.Interior.ColorIndex = 38
rs1.AddNew
rs1.Fields(1) = CStr(d)
rs1.Fields(2) = CStr(ExcelWS.Cells(d.Row, d.Column + 1))
rs1.Update
Else
Form2.Text2 = "2"
End If运行时出错,粗体部分出现问题。。错误:类型不匹配
解决方案 »
- VB关于键盘事件没反应
- 关于DrawIcon与form_load的问题~
- (高分) 关于Form Title Button 句柄的获取
- 关于MSHFlexGrid排序的问题?
- vb如何实现SQL2005数据库的备份与还原
- object.ExportData( BulkCopy ) 的object只能是表名吗?——急!!!
- 求助!!!!
- ###虽然问了好多遍,只要没解决我还问!!希望大家来帮忙!问破天也要问出来!!!!
- 我编程时常用WinSpy,www.AllApi.net Api Guide,eXescope,各位高手编程时常用那些工具呢?
- 运行时为什么会出现这样的错误
- 100分求助VB检测移动设备包括(U盘移动硬盘)
- 请各位高手赐教,我要讲10进制数据转换为压缩BCD码该怎么操作!!
Set d = ExcelWS.Cells.Range("a1", "d4").Find
Dim excel_app As Object
Dim excel_sheet As Object
Dim db As Database
Dim AccessPath As String, AccessTable As String
Dim sql As String
Dim frm As New frmMessage
Dim msg As String
ADOsdb.BeginTrans
' With ADOsdb
' If .State <> adStateOpen Then
' .CursorLocation = adUseClient
' .ConnectionString = gsOdbcName
' .Open
' End If
' End With
With dlgCommonDialog
.DialogTitle = "打开"
.CancelError = False
'ToDo: 设置 common dialog 控件的标志和属性
.Filter = "Excel文件 (*.xls) ¦*.xls"
.ShowOpen
If Len(.FileName) = 0 Then
Exit Sub
End If
sfile = .FileName
End With
AccessPath = lcspath & "\db.mdb" '数据库路径
excelpath = sfile '电子表格路经
AccessTable = "db" '数据库内表格
msg = Trim(InputBox("请输入表名,如sheet1或sheet2:", "工作表", "sheet1"))
' msg = Str(msg)
sheet = msg '电子表格内工作表
Set db = OpenDatabase(excelpath, True, False, "Excel 8.0") '打开电子表格文件
sql = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "$]")
' sql = ("Select * into [;database=" & AccessPath & "]." & AccessTable & " FROM [" & sheet & "]")
If sheet = "" Then
MsgBox "您选择的EXCEL表不存在,请重新导入!", vbInformation, "抱歉!"
Exit Sub
End If
If deltable = 1 Then
With ADOsdb
.Execute "drop table db", , adCmdText
End With
End If
ADOsdb.CommitTrans db.Execute (sql) '将电子表格导入数据库
ShowMessage "正在导入EXCEL表,请您稍等..."
Timer1.Enabled = True