Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
12
返回列表 发新帖
楼主: vien88

[已解决]求教如何实现用指定区域的数据在多个工作表查找数据并自动批注

[复制链接]
发表于 2017-3-21 17:30 | 显示全部楼层
  1. Option Explicit

  2. Sub test()
  3.     Dim rng As Range, rg As Range
  4.     Dim rng1 As Range, rg1 As Range
  5.     Dim iSht%
  6.     Dim Cmt$
  7.     Set rng = Worksheets("源").Range("c3:m4")
  8.     For Each rg In rng
  9.         rg.ClearComments
  10.     Next
  11.     For iSht = 2 To Worksheets.Count
  12.         Set rng1 = Worksheets(iSht).UsedRange
  13.         For Each rg In rng
  14.             For Each rg1 In rng1
  15.                 If rg.Value = rg1.Value Then
  16.                     If rg.Comment Is Nothing Then
  17.                         rg.AddComment Text:=Worksheets(iSht).Name
  18.                     Else
  19.                         Cmt = rg.Comment.Text
  20.                         rg.Comment.Text Cmt & vbCrLf & Worksheets(iSht).Name
  21.                     End If
  22.                 End If
  23.             Next
  24.         Next
  25.         Set rng1 = Nothing
  26.     Next
  27. End Sub

复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
回复

使用道具 举报

 楼主| 发表于 2017-3-21 17:43 | 显示全部楼层
Excel学徒123 发表于 2017-3-21 17:27
加判断咯,然后不退出循环即可

怎么加呢,请版主帮忙给完善一下,感谢
回复

使用道具 举报

 楼主| 发表于 2017-3-21 17:46 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2017-3-21 18:19 | 显示全部楼层
Excel学徒123 发表于 2017-3-21 15:09
自己努力想了,学到的才是你自己的,实在不会没辙了,再求助

版主。中午的时候说过的条件格式用COUNTIF函数进行在多个工作表查找相同值的问题,我试了只有下面这样的方式可以实现! 但是问题是有多个工作表的情况下,那公式得特别长了呢,怎么简写呢!

=COUNTIF(工作表1!C$23:E$27,C3)+COUNTIF(工作表2!C$23:E$27,C3)+COUNTIF(工作表3!C$23:E$27,C3)+COUNTIF(工作表4!C$23:E$27,C3)=1





回复

使用道具 举报

 楼主| 发表于 2017-3-21 18:23 | 显示全部楼层
或者用VBA的话会不会比较简单一些呢!  跟批注的性质一样,现在是要更改底色!
回复

使用道具 举报

发表于 2017-3-21 18:26 | 显示全部楼层
vien88 发表于 2017-3-21 18:23
或者用VBA的话会不会比较简单一些呢!  跟批注的性质一样,现在是要更改底色!

照着我那个思路去写代码
回复

使用道具 举报

 楼主| 发表于 2017-3-21 20:18 | 显示全部楼层
Excel学徒123 发表于 2017-3-21 18:26
照着我那个思路去写代码


Cells.SpecialCells(xlCellTypeComments).Interior.ColorIndex = 4  (当工作表内存在批注时底色自动改成绿色)

这个工作表VBA语句可以跟前面那个配合使用!  但是如果说批注没有了,底色不能变回默认颜色!
可否更改成IF写法,   判断  工作表内 指定区域(C3:M52)的单元格是否有批注, 有批注的话则改底色为绿色(4号颜色),没有批注的话则 改变底色为白色,    也就是0 号颜色!
这样IF写法要怎么写呢, 版主,可以帮忙写一下吗,这个真不会呢!

回复

使用道具 举报

发表于 2017-3-21 20:35 | 显示全部楼层
vien88 发表于 2017-3-21 20:18
Cells.SpecialCells(xlCellTypeComments).Interior.ColorIndex = 4  (当工作表内存在批注时底色自动改 ...

先清除颜色啊,然后再填充

回复

使用道具 举报

 楼主| 发表于 2017-3-21 20:42 | 显示全部楼层
Excel学徒123 发表于 2017-3-21 20:35
先清除颜色啊,然后再填充

可以帮忙改一下代码吗,版主{:051:}
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 19:06 , Processed in 0.252696 second(s), 8 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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