总是显示错误对象变量或With块变量未设置
代码:
Private Sub Command5_Click() '删除历史记录
Dim myval As Long
Dim Adodc1 As Object
If Adodc1.Recordset.RecordCount > 0 Then '这句显示错误
MsgBox "是否删除指定记录?", vbYesNo, "提示"
If myval = vbYes Then
Adodc1.Recordset.Delete
Adodc1.Recordset.Update
End If
Else
MsgBox "系统没有要删除的数据!", , "提示"
End If
End Sub
你是说直接清空不需要的单元格吗?我把原来的单元格里的内容都删掉以后,再次保存到Excel中的时候,还是保存在原来保存位置的下一行。
还有该用函数方式引用怎么弄?
1、Excel文件,VB可以直接方便调用,并且寻找很方便,所以不建议用Adodc1这个控件来调用。在调用Excel时可以用Cell(行,列)来调用任意一个单元格的值或给单元格赋值。如要给B2单元格赋值为100,可以用:cells(2,2)=100;要清除可以用:cells(2,2)="";要删除第3行可以用:cells(3,1).delete 3 。。。。。。等等,不多说了。这里有个我以前的示例,VB写入数据到Excel中,可供参考 http://zhidao.baidu.com/question/257512336.html?oldq=1
2、msgbox可以直接用语句的方式使用,你上面就是如此。也可以用函数的方式,我前面也说了就是:myval=msgbox(.....),括号中的内容就是你语句中的内容,只有这样才能把你的选择结果赋值给myval变量,否则,象你上面的代码,myval变量的值从哪里来呢?
我想要清空的是除了第一行的所有单元格中的内容,要按你这个是不是我删一个写一个cells(1,2)=""我点按钮的时候使不知道会写多少行的,也许100行也许10000行呢,难道要写到10000去吗?myval=msgbox(.....) 这句里的myval指的什么?这句话应该添加在哪?......应该写cells这个么?你给我的这个帖子里没有删除Excel的吧?!还是我没找着
追答你关于Excel中的VBA不熟吧,比如A列中有多少行数据,可以这样获取:
x = Cells(65536, 1).End(xlUp).Row
删除第一行外的所有行,如下:
Range(Cells(2, 1), Cells(x, 1)).Delete 3
后面说的,我有点汗。myval=msgbox(.....) 这句里的myval指的什么?
这是你程序中的,我引用了一下,你的原语句如下:
MsgBox "是否删除指定记录?", vbYesNo, "提示"
If myval = vbYes Then
你上面的代码因为没有给myval赋值,所以myval永远是0.
应改成:
myval =MsgBox("是否删除指定记录?", vbYesNo, "提示")
If myval = vbYes Then
关于后面给的贴子的事,这主要是告诉你VB如何调用Excel,如何声明,如何打开,如何引用,如何关闭等
还是出错,你帮我看看怎么应该改的好不?谢谢了
'必须在工程中添加对Excel的引用。
'工程→引用→Microsoft Excel 11.0 Object Library
'如果找不到,就用引用中的:浏览→找到Office目录中的Excel.exe
Dim xlsApp As Excel.Application
Dim xlsBook As Excel.Workbook
Private Sub Command1_Click()
Dim X, Y As Long
Set xlsApp = Excel.Application
xlsApp.Visible = False
'Set xlsBook = xlsApp.Workbooks.Open("这里输入完整目录及Excel的文件名")
Set xlsBook = xlsApp.Workbooks.Open("D:\TEmp\测试.xls")
X = xlsApp.Sheets(1).cells(65536, 1).End(xlUp).Row
If X > 1 Then
Y = MsgBox("真的要清除全部数据?", vbYesNo)
If Y = vbYes Then
xlsApp.Sheets(1).Range(cells(2, 1), cells(X, 2)).Delete 3
MsgBox "数据清除成功!"
End If
Else
MsgBox "表中无记录!"
End If
xlsBook.Close (True)
xlsApp.Quit
Set xlsApp = Nothing
End Sub