设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1508|回复: 5
打印 上一主题 下一主题

[基础应用] 求助复制难题

[复制链接]
跳转到指定楼层
1#
发表于 2004-12-12 22:07:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请论坛高手出手相助,在此表示感谢!

问题见附件

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2004-12-12 23:29:00 | 只看该作者
  一体化的方式想不到,

不过可以用countif()很容易的找出彼此不重复的数据,和重复两次以上的数据。

再用复制----选择性粘贴可以完成你的要求。

[此贴子已经被作者于2004-12-12 15:32:05编辑过]

3#
发表于 2004-12-13 01:35:00 | 只看该作者
Sub test()

  Dim sh1 As Worksheet

  Dim sh2 As Worksheet

  Dim sht As Worksheet

  '计数器i表示sheet1的当前行

  Dim i As Integer

  '计数器j表示sheet3的当前行

  Dim j As Integer

  Dim f As Integer

  '从第二行开始,忽略标题

  i = 2

  Set sh1 = Worksheets("sheet1")

  Set sh2 = Worksheets("sheet2")

  Set sht = Worksheets("sheet3")

  '清空sheet3的内容

  sht.Cells.ClearContents

  '填写标题

  sht.Cells(1, 1) = sh1.Cells(1, 1)

  sht.Cells(1, 2) = sh1.Cells(1, 2)

  j = 2

  Do While True

     '遇到空行结束

     If sh1.Cells(i, 1) = "" Then

        Exit Do

     End If

     On Error Resume Next

     '假设找不到

     f = -1

     f = Application.WorksheetFunction.Match(sh1.Cells(i, 1), sh2.Range("a:a"), 0)

     '如果找不到,f不会被赋值,保持-1

     If f = -1 Then

        sht.Cells(j, 1) = sh1.Cells(i, 1)

        sht.Cells(j, 2) = sh1.Cells(i, 2)

        j = j + 1

     End If

     'If Application.WorksheetFunction.Match(sh1.Cells(i, 1), sh2.Range("a:a"), 0) > 0 Then

     'End If

     i = i + 1

  Loop

End Sub

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
4#
发表于 2004-12-13 03:39:00 | 只看该作者
那个重复了两次地“C”没有被找到呢
5#
 楼主| 发表于 2004-12-13 03:42:00 | 只看该作者
谢谢版主和Foxxp,对我的帮助很大,如果有解决重复数据的方案一定告诉我一下,再次感谢!
6#
发表于 2004-12-13 05:01:00 | 只看该作者
Sub copyit()

Dim s1 As Worksheet

Dim s2 As Worksheet

Dim s3 As Worksheet

Dim x

Dim y

Dim i

    Set s1 = Worksheets("sheet1")

    Set s2 = Worksheets("sheet2")

    Set s3 = Worksheets("sheet3")

    x = s1.[a2].End(xlDown).Row

    y = s2.[a2].End(xlDown).Row

For Each CEL2 In s1.Range("A2:A" & x) '求表1不在表2中的值

    i = 0

        For Each CEL In s2.Range("A2:A" & y)

        If CEL2 = CEL Then

        i = i + 1

        End If

        Next

    If i <> 1 Then

    s3.[A65536].End(xlUp).Offset(1, 0).Value = CEL2.Value

    s3.[A65536].End(xlUp).Offset(0, 1).Value = CEL2.Offset(0, 1).Value

    End If

Next

For Each CEL2 In s2.Range("A2:A" & y) '求表1在表2中,但有重复的值

    i = 0

        For Each CEL In s1.Range("A2:A" & x)

        If CEL2 = CEL Then

        i = i + 1

        End If

        Next

    If i <> 1 Then

    s3.[A65536].End(xlUp).Offset(1, 0).Value = CEL2.Value

    s3.[A65536].End(xlUp).Offset(0, 1).Value = CEL2.Offset(0, 1).Value

    End If

Next

End Sub

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

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-22 08:23 , Processed in 0.082173 second(s), 30 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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