Excel精英培训网

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

[已解决]求解:利用vba取得所选任意区域的非空单元格,越快越好

  [复制链接]
发表于 2011-11-25 12:25 | 显示全部楼层
不是已经贴出来了,还怎么出示啊啊啊啊?
回复

使用道具 举报

发表于 2011-11-25 12:57 | 显示全部楼层
本帖最后由 liuts 于 2011-11-25 12:59 编辑

Sub aa()
   Dim rg As Range
    Set rg = Application.InputBox("请选择要设置的区域:", Type:=8)
    Union(rg.SpecialCells(xlCellTypeFormulas, 23), rg.SpecialCells(xlCellTypeConstants, 23)).Interior.ColorIndex = 3
End Sub
回复

使用道具 举报

发表于 2011-11-25 14:11 | 显示全部楼层
  1. Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  2.     Dim rg As Range
  3.     Selection.Interior.ColorIndex = 0
  4.     For Each rg In Selection
  5.         If rg.Value <> "" Then rg.Interior.ColorIndex = 3
  6.     Next rg
  7. End Sub
复制代码
填充颜色.zip (8.62 KB, 下载次数: 15)
回复

使用道具 举报

 楼主| 发表于 2011-11-25 14:28 | 显示全部楼层
liuts出现错误400,fjmxwrs实现了,但是没有DJ的快,谢谢各位掌门了
回复

使用道具 举报

发表于 2011-11-26 10:16 | 显示全部楼层
{:35:}{:35:}{:32:}
回复

使用道具 举报

发表于 2011-11-27 18:04 | 显示全部楼层    本楼为最佳答案   
借用Dj_soo的思路,完善一下。
  1. Union(Selection.SpecialCells(xlCellTypeFormulas), Selection.SpecialCells(xlCellTypeConstants)).Interior.Color = vbRed
复制代码
完善理由:Dj_soo的思路再去色的那一步会影响其他单元格原有的底色。
回复

使用道具 举报

 楼主| 发表于 2011-11-27 20:14 | 显示全部楼层
不错,正解,完善了的更快
回复

使用道具 举报

发表于 2011-11-30 00:06 | 显示全部楼层
学习            
回复

使用道具 举报

发表于 2019-6-8 23:18 | 显示全部楼层
这个问题,能不能优化一下代码,整个自定义函数,生成非空单元格的区域,如
(A21:B32,B33,A34:B39)
这样再对区域进行标准差计算,求和计算就方便了
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 16:29 , Processed in 0.317986 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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