Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 4604|回复: 8

[已解决]对比A列和B列,如相同则在C列=E列

[复制链接]
发表于 2013-4-27 11:19 | 显示全部楼层 |阅读模式
小弟刚接触VBA想解决如下问题
如果(1,1)=(1,2),则(1,3)+(1,4) 或则(1,1)=(1+i,2)则(1,3)=(1+i,4)
循环对比,求解决!
求大神指导!
最佳答案
2013-4-27 16:22
  1. Sub hoogle()
  2. Sheets("zjd").Select
  3. Dim i, j
  4. For i = 1 To Range("b65536").End(3).Row
  5.     For j = 1 To Range("c65536").End(3).Row
  6.         If Cells(i, "b") = Cells(j, "c") Then
  7.             Cells(i, "d") = Cells(j, "g")
  8.             Exit For
  9.         End If
  10.     Next
  11. Next
  12. End Sub
复制代码
这个代码运行时间长点。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-4-27 11:22 | 显示全部楼层
给你举个小例子,自己试下
sub hoogle()
if cells(1,1)=cells(1,2) then
    cells(1,3)=cells(1,4)
endif
end sub
回复

使用道具 举报

 楼主| 发表于 2013-4-27 11:30 | 显示全部楼层
本帖最后由 star181149 于 2013-4-27 11:33 编辑
hoogle 发表于 2013-4-27 11:22
给你举个小例子,自己试下
sub hoogle()
if cells(1,1)=cells(1,2) then

Private Sub workbook_open()
  Worksheets("zjd").Activate
  Dim i As Integer
  Dim j As Integer
  i = 1
  j = 1
    Do While i < 2000
      Do While j < 2000
       If Cells(i, 2) = Cells(i, 3) Then
           Cells(i, 4) = Cells(i, 7)
       ElseIf Cells(i, 2) = Cells(i + j, 3) Then
       Cells(i, 4) = Cells(i + j, 7)
       Else: Cells(i, 4).Value = "不匹配"
       End If
       i = i
       j = j + 1
       Loop
     i = i + 1
    Loop
End Sub


求指导!
回复

使用道具 举报

发表于 2013-4-27 11:35 | 显示全部楼层
上传数据附件看看              
回复

使用道具 举报

 楼主| 发表于 2013-4-27 12:50 | 显示全部楼层
hoogle 发表于 2013-4-27 11:35
上传数据附件看看

                                               
请多指教!

111.zip

107.8 KB, 下载次数: 25

回复

使用道具 举报

发表于 2013-4-27 13:46 | 显示全部楼层
代码没报错,你想做成什么结果?
回复

使用道具 举报

 楼主| 发表于 2013-4-27 14:37 | 显示全部楼层
hoogle 发表于 2013-4-27 13:46
代码没报错,你想做成什么结果?

B列和C列中有大部分都是相同的,我需要在D列中返回G列与B列对应的值
如:
   cells(1,B)=蒲秀华   celld(258,c)=蒲秀华 then cells(1,d)=cells(258,G)
回复

使用道具 举报

发表于 2013-4-27 16:22 | 显示全部楼层    本楼为最佳答案   
  1. Sub hoogle()
  2. Sheets("zjd").Select
  3. Dim i, j
  4. For i = 1 To Range("b65536").End(3).Row
  5.     For j = 1 To Range("c65536").End(3).Row
  6.         If Cells(i, "b") = Cells(j, "c") Then
  7.             Cells(i, "d") = Cells(j, "g")
  8.             Exit For
  9.         End If
  10.     Next
  11. Next
  12. End Sub
复制代码
这个代码运行时间长点。
回复

使用道具 举报

 楼主| 发表于 2013-4-28 09:10 | 显示全部楼层
hoogle 发表于 2013-4-27 16:22
这个代码运行时间长点。

不胜感激!
谢谢!!!!
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-21 00:41 , Processed in 0.275811 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表