在VB中,如何添加excel中第一行中所有不为空的单元格中的文本到combo中?

_Overflow 2014-08-08 01:23:14
在VB中,如何添加excel中第一行中所有不为空的单元格中的文本到combo中?
急求
...全文
385 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
_Overflow 2014-08-13
  • 打赏
  • 举报
回复
引用 20 楼 Topc008 的回复:
整那么复杂干嘛?
Private Sub Command1_Click()
    Dim mExcel As Excel.Application
    Dim mBook As Excel.Workbook, mSht As Excel.Worksheet
    ''文档已经打开的情况下
    Set mExcel = GetObject(, "excel.application")
    Set mBook = mExcel.ActiveWorkbook
    ''文档还没打开的情况下
    ''Set mExcel = CreateObject("excel.application")
    ''Set mBook = mExcel.Workbooks.Open("你的文件名带路径")
    Set mSht = mBook.Worksheets("sheet1") ''默认sheet1为你的目标工作表
    Dim i As Long, Rng As Excel.Range
    Combo1.Clear ''清除列表
    With mSht
        i = .Cells(1, .Columns.Count).End(xlToLeft).Column ''确定第一行最后一个不为空的列号
        For Each Rng In .Range(.Cells(1, 1), .Cells(1, i))
            If Rng.Value <> "" Then Combo1.AddItem Rng.Value
        Next
    End With
End Sub

太棒了终于可以了 谢谢哦
一如既往哈 2014-08-12
  • 打赏
  • 举报
回复
整那么复杂干嘛?
Private Sub Command1_Click()
    Dim mExcel As Excel.Application
    Dim mBook As Excel.Workbook, mSht As Excel.Worksheet
    ''文档已经打开的情况下
    Set mExcel = GetObject(, "excel.application")
    Set mBook = mExcel.ActiveWorkbook
    ''文档还没打开的情况下
    ''Set mExcel = CreateObject("excel.application")
    ''Set mBook = mExcel.Workbooks.Open("你的文件名带路径")
    Set mSht = mBook.Worksheets("sheet1") ''默认sheet1为你的目标工作表
    Dim i As Long, Rng As Excel.Range
    Combo1.Clear ''清除列表
    With mSht
        i = .Cells(1, .Columns.Count).End(xlToLeft).Column ''确定第一行最后一个不为空的列号
        For Each Rng In .Range(.Cells(1, 1), .Cells(1, i))
            If Rng.Value <> "" Then Combo1.AddItem Rng.Value
        Next
    End With
End Sub

  • 打赏
  • 举报
回复
你把文档发到网上来,我看看
clear_zero 2014-08-12
  • 打赏
  • 举报
回复
你按那个调试按钮,然后就可以定位到你哪一行处问题了。然后把鼠标放过去把变量加到watch里面
_Overflow 2014-08-12
  • 打赏
  • 举报
回复
引用 12 楼 u010526292 的回复:
[quote=引用 11 楼 u011237384 的回复:] 为什么会这样
你在哪里提示下标越界,下标越界是没有文档的提示 你sheet(1)不应该这么写,应该改写为 sheet("sheet1")[/quote]依旧报错
_Overflow 2014-08-12
  • 打赏
  • 举报
回复
引用 14 楼 clear_zero 的回复:
你按调试然后看变量里面的数据,到底是多少个
在下新手,能讲一讲操作吗?
_Overflow 2014-08-12
  • 打赏
  • 举报
回复
引用 13 楼 of123 的回复:
看来真的应该加分。累。
clear_zero 2014-08-11
  • 打赏
  • 举报
回复
你按调试然后看变量里面的数据,到底是多少个
of123 2014-08-11
  • 打赏
  • 举报
回复
看来真的应该加分。累。
_Overflow 2014-08-10
  • 打赏
  • 举报
回复
引用 5 楼 u010526292 的回复:

  Set excel1 = New Excel.Application
    excel1.Visible = False
    excel1.Workbooks.Open (App.Path & "\程序模版.xls") ‘此处 写你需要打开的路径
    excel1.Workbooks("程序模版.xls").Sheets("待打印").Select ’你要选择的表
'下面是判断,你所需要打开的文件是否已经被打开
    If excel1.Workbooks("程序模版.xls").ReadOnly = True Then
        excel1.DisplayAlerts = False
        excel1.Application.Quit
        excel1.DisplayAlerts = True
        MsgBox "你已经打开“程序模版.xls”" & Chr(13) & "请关闭原有的“程序模版.xls”,在运行打印。", vbOKOnly + vbExclamation, "错误提示"
        excel1.Visible = True
        Exit Sub
    End If
‘以下添加你将第一列不为空的全部加入到,所说的到combo1

dim i as long
for i = 1 to   excel1.Workbooks("程序模版.xls").Sheets("待打印").range("a65536).end(xlup).row
if   trim(excel1.Workbooks("程序模版.xls").Sheets("待打印").cells(i,1))<>"" then
combo1.additem excel1.Workbooks("程序模版.xls").Sheets("待打印").cells(i,1)
end if
next
excel1.Workbooks("程序模版.xls").Sheets("待打印").Select ’你要选择的表 显示下标越界
  • 打赏
  • 举报
回复

  Set excel1 = New Excel.Application
    excel1.Visible = False
    excel1.Workbooks.Open (App.Path & "\程序模版.xls") ‘此处 写你需要打开的路径
    excel1.Workbooks("程序模版.xls").Sheets("待打印").Select ’你要选择的表
'下面是判断,你所需要打开的文件是否已经被打开
    If excel1.Workbooks("程序模版.xls").ReadOnly = True Then
        excel1.DisplayAlerts = False
        excel1.Application.Quit
        excel1.DisplayAlerts = True
        MsgBox "你已经打开“程序模版.xls”" & Chr(13) & "请关闭原有的“程序模版.xls”,在运行打印。", vbOKOnly + vbExclamation, "错误提示"
        excel1.Visible = True
        Exit Sub
    End If
‘以下添加你将第一列不为空的全部加入到,所说的到combo1

dim i as long
for i = 1 to   excel1.Workbooks("程序模版.xls").Sheets("待打印").range("a65536).end(xlup).row
if   trim(excel1.Workbooks("程序模版.xls").Sheets("待打印").cells(i,1))<>"" then
combo1.additem excel1.Workbooks("程序模版.xls").Sheets("待打印").cells(i,1)
end if
next
_Overflow 2014-08-10
  • 打赏
  • 举报
回复
已经加分了
_Overflow 2014-08-10
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
引用 11 楼 u011237384 的回复:
为什么会这样
你在哪里提示下标越界,下标越界是没有文档的提示 你sheet(1)不应该这么写,应该改写为 sheet("sheet1")
_Overflow 2014-08-10
  • 打赏
  • 举报
回复
为什么会这样
  • 打赏
  • 举报
回复
引用 9 楼 u011237384 的回复:
Dim excel1
Set excel1 = New Excel.Application
    excel1.Visible = False
    excel1.Workbooks.Open (CommonDialog1.FileName) '此处 写你需要打开的路径
    excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Select  '你要选择的表
'下面是判断,你所需要打开的文件是否已经被打开
    If excel1.Workbooks(CommonDialog1.FileName).ReadOnly = True Then
        excel1.DisplayAlerts = False
        excel1.Application.Quit
        excel1.DisplayAlerts = True
        MsgBox "你已经打开 " & CommonDialog1.FileName & Chr(13) & "请关闭原有的“程序模版.xls”,在运行打印。", vbOKOnly + vbExclamation, "错误提示"
        excel1.Visible = True
        Exit Sub
    End If
'以下添加你将第一列不为空的全部加入到,所说的到combo1
 
Dim i As Long
For i = 1 To excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Range("a65536").End(xlUp).Row
If Trim(excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Cells(i, 1)) <> "" Then
Combo1.AddItem excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Cells(i, 1)
End If
Next
End Sub
Sheets("待打印"),这个也要改成你表单的名字
_Overflow 2014-08-10
  • 打赏
  • 举报
回复
Dim excel1
Set excel1 = New Excel.Application
    excel1.Visible = False
    excel1.Workbooks.Open (CommonDialog1.FileName) '此处 写你需要打开的路径
    excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Select  '你要选择的表
'下面是判断,你所需要打开的文件是否已经被打开
    If excel1.Workbooks(CommonDialog1.FileName).ReadOnly = True Then
        excel1.DisplayAlerts = False
        excel1.Application.Quit
        excel1.DisplayAlerts = True
        MsgBox "你已经打开 " & CommonDialog1.FileName & Chr(13) & "请关闭原有的“程序模版.xls”,在运行打印。", vbOKOnly + vbExclamation, "错误提示"
        excel1.Visible = True
        Exit Sub
    End If
'以下添加你将第一列不为空的全部加入到,所说的到combo1
 
Dim i As Long
For i = 1 To excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Range("a65536").End(xlUp).Row
If Trim(excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Cells(i, 1)) <> "" Then
Combo1.AddItem excel1.Workbooks(CommonDialog1.FileName).Sheets("待打印").Cells(i, 1)
End If
Next
End Sub
_Overflow 2014-08-10
  • 打赏
  • 举报
回复
引用 7 楼 u010526292 的回复:
你要把那些名字改成你文件的名字
已经改了:commondialog1.filename
  • 打赏
  • 举报
回复
你要把那些名字改成你文件的名字
_Overflow 2014-08-09
  • 打赏
  • 举报
回复
急求啊!!!!!!!!!!!!!
加载更多回复(1)

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧