注册 登录
编程论坛 VB6论坛

vb操作excel问题

btbcbbc 发布于 2015-04-29 10:19, 920 次点击
用vb打开一个excel表格,逐次判断其中的sheet中第一个单元格是否为空,若为空则保存后退出,代码怎么写呢?求大神赐教!
9 回复
#2
lianyicq2015-04-29 10:30
打开了,没执行写操作.还需要保存?
遍历excel文件sheet表参见https://bbs.bccn.net/viewthread.php?tid=443738&page=1#pid2480216
读写单元格参见https://bbs.bccn.net/viewthread.php?tid=441270&extra=&page=1
#3
btbcbbc2015-04-29 10:48
回复 2楼 lianyicq
学习了,还想请问一下依次打开sheet并操作,如何对每个sheet都保存,最后到空sheet则退出
#4
lianyicq2015-04-29 11:07
对工作簿使用Save方法,进行保存。如
Dim WB As Excel.Workbook  'WB是工作簿,也就是excel文件
Dim sht As Excel.Worksheet'sht是工作表,一个工作簿下可以有多个工作表
...
WB.Save'保存编辑后的文件

想把excel文件中的每个sheet都单独保存为一个独立excel文件?可以用SaveAs方法,参见https://msdn.(v=office.15).aspx
如果由指定单元格内容来判断空表比较容易,直接读该单元格值来判断.
如果没有指定单元格,试试用worksheet.usedrang.address是否等于"$A$1"作为条件之一
If sht.UsedRange.Address = "$A$1" And sht.Range("A1") = "" Then
  Text1.Text = sht.Name & "为空表"
End If



[ 本帖最后由 lianyicq 于 2015-4-29 11:43 编辑 ]
#5
btbcbbc2015-04-29 14:50
回复 4楼 lianyicq
你好,请问一下vb中判断excel中单元格内容是否为“A 105”,若不是则设此单元格为红色,执行后发现excel中有的单元格内容是“A 105”也被设置成了红色,是因为输入法不同导致空格长度不同还是什么原因?
#6
lianyicq2015-04-29 14:57
回复 5楼 btbcbbc
代码段上来看看
#7
btbcbbc2015-04-29 15:00
回复 6楼 lianyicq
Dim CZ As String
Dim i As Integer
i = 2
Do While (xlSheet.Cells(i, 2).Value <> "")
CZ = "A 105"
If xlSheet.Cells(i, 3).Value <> CZ Then
xlSheet.Cells(i, 3).Interior.Color = 255
Else
End If
i = i + 1
Loop
#8
lianyicq2015-04-29 15:19
回复 7楼 btbcbbc
代码没发现问题。[attach]80032[/attach]
再检查其它内容
只有本站会员才能查看附件,请 登录

如果担心是空格影响。用replace()

[ 本帖最后由 lianyicq 于 2015-4-29 15:22 编辑 ]
#9
btbcbbc2015-04-29 15:22
回复 8楼 lianyicq
是的,我检查的内容中不含空格的话,都没有问题,含有空格的时候,有的单元格就会出现问题,可能是excel中输入法不同输入空格后造成字符串长度不同吧
#10
btbcbbc2015-04-29 15:31
回复 8楼 lianyicq
用replace解决了,谢谢!
1