ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ggsmart

菜鸟谈VBA最最基础入门《原创》

    [复制链接]

TA的精华主题

TA的得分主题

发表于 2009-10-13 13:56 | 显示全部楼层
本帖已被收录到知识树中,索引项:开发帮助和教程
如果世界上有神,你就是神。太通俗易懂了。

TA的精华主题

TA的得分主题

发表于 2009-10-13 16:10 | 显示全部楼层
各位老师,同学,请帮帮忙。
我用worksheet的chang事件做了个东西。
基本能满足要求,但是还有一点点问题,解决不了,请求帮忙。
详细见附件。

test.rar

9.77 KB, 下载次数: 275

TA的精华主题

TA的得分主题

发表于 2009-10-13 16:16 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
终于从第1页看到第72页了,看到了门,


打算再回头,磨把属于自己的钥匙,

谢谢楼主,及各位热心发言的朋友。。。。

TA的精华主题

TA的得分主题

发表于 2009-10-13 16:39 | 显示全部楼层

回复 10楼 ggsmart 的帖子

请VBA高手帮忙做一下,谢谢
情况是:第一张表“交易明细-RMB”是每个科目的当月发生明细账,金额是人民币,第二张表“报表汇总”是一张美金的各个科目的汇总金额(和第一张没有关系),第一张表的美金折算金额汇总后和第二张表的相应科目会有个差异。
要求是:一,将第一张表的RMB金额按汇率折算到第三张表中,部门不变
        二,将第一张表折算后的USD汇总金额和第二张表的差异也体现在第三张表中,使用相同的科目

谢谢高手

交易明细.rar

1.67 KB, 下载次数: 160

TA的精华主题

TA的得分主题

 楼主| 发表于 2009-10-13 17:26 | 显示全部楼层

回复 715楼 草根糖 的帖子

没完全明白你的意思,是这样吗?

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. Target.ClearFormats
  3. If WorksheetFunction.CountIf(Range("a:a"), Target.Value) > 1 Then
  4.     Target.Font.ColorIndex = 3
  5. End If
  6. End Sub
复制代码
先下班了,明天再看!

TA的精华主题

TA的得分主题

发表于 2009-10-13 19:24 | 显示全部楼层
是否可以用target.offset(0,-1)来指定目标左侧的单元格,如果不能怎么办?

TA的精华主题

TA的得分主题

发表于 2009-10-13 20:49 | 显示全部楼层
原帖由 ggsmart 于 2009-10-13 17:26 发表
没完全明白你的意思,是这样吗?
Private Sub Worksheet_Change(ByVal Target As Range)
Target.ClearFormats
If WorksheetFunction.CountIf(Range("a:a"), Target.Value) > 1 Then
    Target.Font.ColorIndex  ...


谢谢老师的解答,不过还是未能满足全部需求。
我的意思是,在A列输入数据,如果新输入的数据有与前面的相同,则字体变红,否则不变;输入的数据可以是单个单元格输入,也可以是从其它工作薄中批量复制过来;只有A列有这要求,其它列则不需要,比如在B列输入与A列相同的数据时不变色。

刚才,我又根据老师的解答,稍微进行了修改,已经满足全部需求了。
还是countif来的好啊 ~,呵呵,谢谢老师的指导!

[ 本帖最后由 草根糖 于 2009-10-13 21:18 编辑 ]

test2.rar

7.48 KB, 下载次数: 258

TA的精华主题

TA的得分主题

发表于 2009-10-13 20:50 | 显示全部楼层
offset(0,-1)我试过了,可以.
但又有了新的问题: 我修改的目标区是B列, 行数X(可变的), 通过修改这一列的一个单元格,然后对所修改行的A至E列进行一些操作, 我如何确定定个区域? 不用RANGE().
我想用一个resize()或offset()不知道能否实现.

TA的精华主题

TA的得分主题

发表于 2009-10-14 08:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

回复 720楼 草根糖 的帖子

怎么出现了两次啊,见下一楼!

[ 本帖最后由 trustwxq 于 2009-10-14 08:27 编辑 ]

TA的精华主题

TA的得分主题

发表于 2009-10-14 08:26 | 显示全部楼层

回复 719楼 草根糖 的帖子

草根糖好,大作已读,整体感觉良好,程序虽小,层次还是挺清晰的,我有一点建议:
程序中的CountIf(Range("a:a")是否可以改成CountIf(Range("a1:a" & rng.Row),这样如果新复制进来的机型在前面没出现过,但是在复制进来的区域中有重复时,就不会两个都变红,只有从上到下第二次以上出现的才变红。
test3.rar (8.3 KB, 下载次数: 215)
如例子中的A29单元格,如果用CountIf(Range("a:a"),A29中的内容虽然前面没有出现,但在新加进来的区域中出现了两次,A29和A31两个单元格中的内容都会变成红色,而如果用CountIf(Range("a1:a" & rng.Row)后,因为A29中的内容是从上到下第一次出现,所以不会变成红色,A31单元格则不同,他前面出现过一次(A29),所以A31会变红。

[ 本帖最后由 trustwxq 于 2009-10-14 08:28 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-4-28 08:46 , Processed in 0.055591 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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