Excel精英培训网

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

[已解决]怎么用VBA只对可见的单元格区域操作?

[复制链接]
发表于 2011-7-30 12:33 | 显示全部楼层 |阅读模式
怎么用VBA只对可见的单元格区域操作?,详情看附件,谢谢高手们!{:091:}
最佳答案
2011-7-30 14:16
代码如下:


  1. Public i As Long
  2. '声明全局变量i
  3. Sub Input_()
  4.     If Selection.Column = 1 And Selection.Count = 3 Then
  5.     '判断选取的是不是第1列并且单元格个数为3
  6.         If Cells(Selection.Row, "B") <> "" Then
  7.         '判断所选的B列中是不是有数据
  8.             If MsgBox("B" & Selection.Row & "中有数据,是否输入?", vbYesNo, "提示") = vbYes Then
  9.             '判断弹出的提示框所选择是:“yes 还是 no”
  10.                 i = i + 1
  11.                 '变量每运行一次则就在自身上加1
  12.                 Cells(Selection.Row, "A") = i
  13.                 '所选的A列中输入值i
  14.                 Cells(Selection.Row, "C") = i
  15.                 '所选的C列中输入值i
  16.             End If
  17.         Else
  18.             i = i + 1
  19.             Cells(Selection.Row, "A") = i
  20.             Cells(Selection.Row, "C") = i
  21.         End If
  22.     End If
  23. End Sub
复制代码

附件:
问题.rar (7.7 KB, 下载次数: 71)

问题.rar

5.34 KB, 下载次数: 38

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2011-7-30 14:16 | 显示全部楼层    本楼为最佳答案   
代码如下:


  1. Public i As Long
  2. '声明全局变量i
  3. Sub Input_()
  4.     If Selection.Column = 1 And Selection.Count = 3 Then
  5.     '判断选取的是不是第1列并且单元格个数为3
  6.         If Cells(Selection.Row, "B") <> "" Then
  7.         '判断所选的B列中是不是有数据
  8.             If MsgBox("B" & Selection.Row & "中有数据,是否输入?", vbYesNo, "提示") = vbYes Then
  9.             '判断弹出的提示框所选择是:“yes 还是 no”
  10.                 i = i + 1
  11.                 '变量每运行一次则就在自身上加1
  12.                 Cells(Selection.Row, "A") = i
  13.                 '所选的A列中输入值i
  14.                 Cells(Selection.Row, "C") = i
  15.                 '所选的C列中输入值i
  16.             End If
  17.         Else
  18.             i = i + 1
  19.             Cells(Selection.Row, "A") = i
  20.             Cells(Selection.Row, "C") = i
  21.         End If
  22.     End If
  23. End Sub
复制代码

附件:
问题.rar (7.7 KB, 下载次数: 71)
回复

使用道具 举报

 楼主| 发表于 2011-8-1 00:57 | 显示全部楼层
那是因为每天都要做很多次这样的工作,我想用VBA解决它,不用老是重复一个动作
回复

使用道具 举报

 楼主| 发表于 2011-8-1 00:39 | 显示全部楼层
回复 EXCEL-YQ 的帖子

我还想说一下的就是,我隐藏的可能是多列,而且不不固定的,这次可能是隐藏B列,下次可能隐藏C列了,区域也可能不只A1:B1,这么大,当区域很大时,这种代码 是不是就不好写了了
回复

使用道具 举报

发表于 2011-8-1 00:43 | 显示全部楼层
其实根本就用不到VBA来操作的。直接用F5定位-定位条件-可以见单元格-再输入值按Ctrl+Enter回车,你可以先试一下,了解下这个功能,不过就是不能判断被隐藏的那行有没有值,不过可以做个辅助列来看
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-31 02:32 , Processed in 0.210420 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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