注册 登录
编程论坛 VB6论坛

请高手帮忙.我写的VB出现问题

lx5656 发布于 2015-05-19 19:27, 687 次点击
第一个按钮代码
Private Sub Command1_Click()
 Dim EXAPP As Excel.Application
 Dim WB As Excel.Workbook
 Dim sht As Excel.Worksheet
 Set EXAPP = CreateObject("excel.application")
 Set WB = EXAPP.Workbooks.Open("d:\成绩表.xls")
 Set sht = WB.Worksheets("Sheet1")
Range("N2").Select
     ActiveCell.FormulaR1C1 = "=SUM(RC[-8]:RC[-1])"
    Range("N2").Select
    Selection.AutoFill Destination:=Range("N2:N641"), Type:=xlFillDefault
    Range("N2:N641").Select
    ActiveWindow.SmallScroll Down:=-9
 Form1.Caption = sht.Range("B5").Value '从表格取值
 'WB.Save'保存编辑后的文件
 WB.Close
 Set sht = Nothing
 Set WB = Nothing
 Set EXAPP = Nothing
 End Sub
第二个按钮代码
Private Sub Command2_Click()
 Dim EXAPP As Excel.Application
 Dim WB As Excel.Workbook
 Dim sht As Excel.Worksheet
 Set EXAPP = CreateObject("excel.application")
 Set WB = EXAPP.Workbooks.Open("d:\成绩表.xls")
 Set sht = WB.Worksheets("总表")
  Range("A2:V800").Select
    Selection.Sort Key1:=Range("T3"), Order1:=xlDescending, Header:=xlGuess, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
        :=xlPinYin, DataOption1:=xlSortNormal   
 Set sht = Nothing
 Set WB = Nothing
 Set EXAPP = Nothing
End Sub
只要执行第二个按钮,红色部分就提示错误,是什么原因请高手帮忙下
7 回复
#2
wube2015-05-19 19:40
錯在沒定義Range,VB不知道它是來自誰之下的方法?
#3
lianyicq2015-05-19 19:54
sht.Range("A2:V800").Select
#4
wube2015-05-19 19:57
做個爛比喻:
有個人名叫Excel,你聲明他是EXAPP。
他生了兩個兒子,一個叫Workbook,你聲明他是WB。
另一個叫Worksheet,你聲明他是sht。
然後你叫Range去搬磚,此時電腦糊塗了,Range是誰啊,要去哪叫呢?
#5
风吹过b2015-05-19 20:03
就是就是,看代码,感觉就是把宏代码复制过来样的。
在宏里,找不到是谁的,系统就默认中 Excel 的。 但在vb里就没这种默认 。
#6
renxiaoyao362015-05-19 20:54
加一个定义应该就能解决了
#7
lx56562015-05-20 08:43
谢谢各位高手解答谢谢
#8
lx56562015-05-20 08:53
高手就是高手给我一讲,真是茅塞顿开!!!!!!!
1