VBGood网站全文搜索 Google

搜索VBGood全站网页(全文搜索)

VB爱好者乐园(VBGood)

 找回密码
 立即注册
搜索
查看: 256|回复: 4

[求助] 关于只出现一条Cells(3, 2)的记录

[复制链接]
发表于 2018-11-8 16:29:38 | 显示全部楼层 |阅读模式
10金钱
本代码原意是,检查EXCEL"单选题"中第一列中有否相同记录。

运行后,在****处,在TXT中只出现一条记录的记录,而不是相同记录。注:只检查EXCEL第一列是否有重复记录。

Private Sub Command1_Click()
Label10.Visible = True
Command3.Enabled = False
Command4.Enabled = False

Dim i As Integer
Dim objExcel As excel.Application '定义
Dim objWorkbook As excel.Workbook '工作簿对象
Dim sheetexcel As excel.Worksheet '工作表

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = False '打开文件时不可见

Set objWorkbook = objExcel.Workbooks.Open(Text3.Text)

Open App.Path & "\EXCEL“题目”中是否有相同记录.txt" For Append As #1
  Print #1, "单选题"
Close #1
m = 0
For i = 1 To objWorkbook.Worksheets("单选题").UsedRange.Rows.Count '检测有记录有几行
  If objWorkbook.Worksheets("单选题").UsedRange.Cells(i, 1) <> "" Then
      m = 1 + m
    Else
      Exit For
  End If
Next i
Text1.Text = m

For i = 2 To m  '去除表的头
  AA = objWorkbook.Worksheets("单选题").UsedRange.Cells(i, 2).Value
  For j = i + 1 To m
    If AA = objWorkbook.Worksheets("单选题").UsedRange.Cells(j, 2) Then '******问题,只出现一条Cells(3, 2)的记录
      Open App.Path & "\EXCEL“题目”中是否有相同记录.txt" For Append As #1
        Print #1, "第" & i & "行与第" & j & "行 单元格内容相同。"
      Close #1
    End If
  Next j
Next i
m = 0

Open App.Path & "\EXCEL“题目”中是否有相同记录.txt" For Append As #1
  Print #1, "————————————————"
Close #1

objWorkbook.Close
Set objExcel = Nothing

Label10.Caption = "检查结束"
Label10.Visible = True
Command3.Enabled = True
Command4.Enabled = True

End Sub

VB 题库检查单元格是否相同.rar

12.41 KB, 下载次数: 12

最佳答案

查看完整内容

遍历耗时,你用下dictionary吧
发表于 2018-11-8 16:29:39 | 显示全部楼层
遍历耗时,你用下dictionary吧
回复

使用道具 举报

发表于 2018-11-9 23:03:41 | 显示全部楼层
不是很清楚,你到底需要什么样的结果。最好把你想要的最终结果附上。

既然你说的只检查第一列,那 为什么你这里要用第二列来判断有没有重复呢?
AA = objWorkbook.Worksheets("单选题").UsedRange.Cells(i, 2).Value
  For j = i + 1 To m
    If AA = objWorkbook.Worksheets("单选题").UsedRange.Cells(j, 2)
回复

使用道具 举报

发表于 2018-11-10 08:47:00 | 显示全部楼层
还有你用这种循环去判断重复项,当你数据量大的时候运行会很慢的。
回复

使用道具 举报

 楼主| 发表于 2018-11-10 11:21:13 | 显示全部楼层
mapletreekc 发表于 2018-11-9 23:03
不是很清楚,你到底需要什么样的结果。最好把你想要的最终结果附上。

既然你说的只检查第一列,那 为什 ...

谢谢找到了症结。另外,说明本人水平还有有问题,有什么好的方法吗,请赐教。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

文字版|手机版|小黑屋|VBGood  

GMT+8, 2018-12-18 22:03

VB爱好者乐园(VBGood)
快速回复 返回顶部 返回列表