永发信息网

VB如何读取确定Excel表格中表头的位置

答案:4  悬赏:0  手机版
解决时间 2021-04-05 04:30
  • 提问者网友:欲劫无渡
  • 2021-04-04 17:25
如上,要求用VB代码实现精确读取Excel中表格表头的位置。在此问题中表格是由用户自定义完成的模板文件,只有表头,但表头位置是不确定的。
求高手解答,万分感激。在线等答案。

现在急需的是实现代码。请各位回答的好心人一并附上详细代码,最好是有相应的说明。谢谢了。
怎么没有人回答啊,急啊急啊。
TO godiq 同学:谢谢你的回答。因为表头是用户自定义,所以表头内容是不确定的。你看这样能不能帮我实现:用VB挨个访问表格(第一行),由VB程序确定该表格中是不是有内容,如果有,即可以确定此单元格作为表头。也就确定了表头的位置了。
若是可行的话,请帮忙给以实现,万分感激!!PS:最好是还给出关键语句的注释。
谢谢NULLOVE,但我补充一下,我这里的表头就是表格第一行上由用户自己输入的内容。已经确定是在第一行,哪一列并不确定。
TO: arugong。谢谢你的回答。对你的答案,我有个要求,就是当查询到第一个单元格是表头之后,能不能用循环语句继续往下查询,一直到发现空白单元格为止结束。如果我的意见可行,希望你还是能帮我把这个功能实现。谢谢了。
最佳答案
  • 五星知识达人网友:神也偏爱
  • 2021-04-04 17:46
你看看是不是要这样子

Private Sub CommandButton1_Click()
Dim intCol As Integer
Dim intFirstCol As Integer
Dim i As Integer

For intCol = 1 To 255
If Cells(1, intCol) <> "" Then

intFirstCol = intCol
Exit For

End If
Next

For i = intFirstCol To 255
If Cells(1, i) <> "" Then
MsgBox (Cells(1, i).Value)
Else
Exit For

End If
Next

End Sub

这样弹出一个消息框 提示表头那一行每一个不为空的单元格的内容
全部回答
  • 1楼网友:天凉才是好个秋
  • 2021-04-04 20:58
MaxLine = 1024 'sheet中的最大行数 i = 1 col = 1 '你表头所在的列数 Do While Left(MySheet.Cells(i, 1).Value, col) <> "表头内容" And i < MaxLine i = i + 1 Loop '此时i行就是你要找的位置,但如果找不到这个位置(超出最大行数了)说明不是合法的报表,下面的语句就是作此判断的。 If i = MaxLine Then MsgBox Workbooks(Wb + 1).Name + "不是合法的EXCEL报表!", vbOKOnly, "Warning!" Workbooks(Wb + 1).Activate Exit Sub End If
  • 2楼网友:神鬼未生
  • 2021-04-04 20:07
你这样的描述没法帮你写代码。 表头的内容是固定的吗? 我的建议是用VB打开该EXCEL文件后,挨着读取每个格里的内容,直到读到与表头内容一致和格后停止,就可以确定动态的确定表头的位置了。
  • 3楼网友:蓝房子
  • 2021-04-04 19:06
我路过,你已经知道了算法,接下来肯定不能再靠别人提供代码了,这样不一定能得到自己想要的结果,而且给了你可能也看不懂,建议你用半个小时参阅一下网上关于vb和excel互相读写的文章。 1.部件--引用--microsoft excel 11.0 libary 2.添加一个按钮command1,写下代码: private sub command1_click() dim xlexcel as excel.application dim xlbook as excel.workbook dim xlsheet as excel.worksheet dim appexcel as object dim i as integer dim title as string set xlexcel = createobject("excel.application") xlexcel.workbooks.open "c:\test.xls" '文件路径 set xlbook = xlexcel.workbooks("test.xls") set xlsheet = xlbook.worksheets(1) title = "" for i = 1 to 100 '因为不知道你的表格的表头规律,我假设能到100列 if xlsheet.cells(1, i).value <> "" then title = title & xlsheet.cells(1, i).value end if next i text1 = title application.displayalerts = false xlexcel.quit '退出excel end sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯