如上,要求用VB代码实现精确读取Excel中表格表头的位置。在此问题中表格是由用户自定义完成的模板文件,只有表头,但表头位置是不确定的。
求高手解答,万分感激。在线等答案。
现在急需的是实现代码。请各位回答的好心人一并附上详细代码,最好是有相应的说明。谢谢了。
怎么没有人回答啊,急啊急啊。
TO godiq 同学:谢谢你的回答。因为表头是用户自定义,所以表头内容是不确定的。你看这样能不能帮我实现:用VB挨个访问表格(第一行),由VB程序确定该表格中是不是有内容,如果有,即可以确定此单元格作为表头。也就确定了表头的位置了。
若是可行的话,请帮忙给以实现,万分感激!!PS:最好是还给出关键语句的注释。
谢谢NULLOVE,但我补充一下,我这里的表头就是表格第一行上由用户自己输入的内容。已经确定是在第一行,哪一列并不确定。
TO: arugong。谢谢你的回答。对你的答案,我有个要求,就是当查询到第一个单元格是表头之后,能不能用循环语句继续往下查询,一直到发现空白单元格为止结束。如果我的意见可行,希望你还是能帮我把这个功能实现。谢谢了。
VB如何读取确定Excel表格中表头的位置
答案:4 悬赏:0 手机版
解决时间 2021-04-05 04:30
- 提问者网友:欲劫无渡
- 2021-04-04 17:25
最佳答案
- 五星知识达人网友:神也偏爱
- 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
这样弹出一个消息框 提示表头那一行每一个不为空的单元格的内容
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
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯