首先,工作表中的控件必须是ActiveX类型的复选框。
我已测试过可以运行。但是每次必须执行一次代码才生效,也就是不会随J16单元格的值变化而自动变化。
如果要随单元格值变化而变化,可以将代码置于工作表代码模块中:
Private Sub Worksheet_Change(ByVal Target As Range)
If ApplicationIntersect(Target, Range("j16")) Is Nothing Then Exit Sub
If Range("j16") = "O" Then
Range("j16")ParentOLEObjects("CheckBox1")ObjectValue = 1
Range("j16")ParentOLEObjects("CheckBox2")ObjectValue = 0
Range("j16")ParentOLEObjects("CheckBox3")ObjectValue = 0
End If
If Range("j16") = "F" Then
Range("j16")ParentOLEObjects("CheckBox2")ObjectValue = 1
Range("j16")ParentOLEObjects("CheckBox1")ObjectValue = 0
Range("j16")ParentOLEObjects("CheckBox3")ObjectValue = 0
End If
If Range("j16") = "U" Then
Range("j16")ParentOLEObjects("CheckBox3")ObjectValue = 1
Range("j16")ParentOLEObjects("CheckBox1")ObjectValue = 0
Range("j16")ParentOLEObjects("CheckBox2")ObjectValue = 0
End If
End Sub
Dim XlApp as New ExcelApplication '生成新的Excel实例。这是关键的步聚。
新的Excel实例可以不受系统中其他Excel进程的影响。
还有、退出时释放Excel的Application哦。就是QUIT方法执行后加上设置为Nothing。
修改如下:
Private Sub Commandaa_Click()
Dim xlApp As New ExcelApplication
'这下面这个就不要了。需要在工程中引用Excel对象。
'Set xlApp = CreateObject("ExcelApplication")
With xlApp
WorkbooksOpen CommonDialog9FileName
Workbooks(CommonDialog9FileTitle)Sheets("输配系统气量日报")Cells(1, 1) = "165641649496161654984945"
Workbooks(CommonDialog9FileTitle)SaveAs "F:\dddddxls"
Workbooks("dddddxls")close
Quit
End With
MsgBox "您的报表已生成,并放置在F盘下,谢谢使用本软件", , "友情提示"
set xlApp=nothing
End Sub
以上就是关于excel表格vb程序开发全部的内容,包括:excel表格vb程序开发、vb编写excel程序、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)