新手求教VBA问题

h20mins 2017-12-31 10:27:03
Sub 清除其他人data()
'
' 清除其他人data
'
' 快捷键: Ctrl+n
'
Dim lanrang As Range
'下面这行通不过,新手不明白。
Set langrang = Worksheets("兰兰兰").rang("a3:f17")

Range("A3:F17").Select
Selection.ClearContents
Range("A3").Select
End Sub
兰兰兰是一个表名,我这个代码是一个宏再修改了一下写在同一个工作薄的另一个表中。目的是除去a3:f17的内容
...全文
529 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
aaa152314 2018-01-30
  • 打赏
  • 举报
回复
你直接 Worksheets("兰兰兰").rang("a3:f17").clear就行了,不用先选定在清除。
赵4老师 2018-01-03
  • 打赏
  • 举报
回复
注释掉所有On Error Resume Next语句,在VBA IDE中运行, 出错后点击调试,光标会停在出错的那条语句处, 或者 事先在怀疑可能有逻辑错误的语句处设置断点,运行经过断点时中断, 此时可以在立即窗口中使用 ?变量名 或 ?函数名(函数参数) 或 过程名(参数) 辅助调试。
h20mins 2017-12-31
  • 打赏
  • 举报
回复
我的最终目的是为了用一段代码一次性清除表1,表2,表3,表4,表5,的a3:f17的内容
舉杯邀明月 2017-12-31
  • 打赏
  • 举报
回复
引用 5 楼 h20mins 的回复:
[quote=引用 3 楼 Chen8013 的回复:] 我记得以前写VBA代码时,好像是“非活动工作表”也可以改变活动单元格的。(太久了,也许是我记错了) 当初用的是Office 2000和Office 2003的。
谢谢,我还需要多多看书,没有捷径可走。[/quote] 至少,你的“问题”我已经给了你答案。 我以前基本是靠“录制宏、再看宏代码”来学习VBA的。 现在可方便多了,有了“问题”,可以网上查资料、发帖子咨询,等等……很多方法。 而我那时只能靠自己“摸着石头过河”,全靠自己“探索”,   没网络(10多年前,开“宽带”很贵的,并且觉得也没有什么实际价值)、   生活圈子内的人根本没一个会“编程”的(会“用电脑”的人都没几个)。
h20mins 2017-12-31
  • 打赏
  • 举报
回复
引用 3 楼 Chen8013 的回复:
我记得以前写VBA代码时,好像是“非活动工作表”也可以改变活动单元格的。(太久了,也许是我记错了) 当初用的是Office 2000和Office 2003的。
谢谢,我还需要多多看书,没有捷径可走。
h20mins 2017-12-31
  • 打赏
  • 举报
回复
比较感谢,我意识到我的水平实在太菜,想此刻解决问题还太难,需要学习几个月再来问问题。之前只学过几下控制流程,对于函数库、语法规则还完全不懂。
舉杯邀明月 2017-12-31
  • 打赏
  • 举报
回复
我记得以前写VBA代码时,好像是“非活动工作表”也可以改变活动单元格的。(太久了,也许是我记错了) 当初用的是Office 2000和Office 2003的。
舉杯邀明月 2017-12-31
  • 打赏
  • 举报
回复
你的“后3句代码”明显是不正确的!
Range("A3:F17").Select     ' 选定“当前工作簿→当前工作表→单元格区域("A3:F17")”
Selection.ClearContents    ' 删除“当前选定”区域的内容
Range("A3").Select         ' 选定“当前工作簿→当前工作表→A3单元格”
对象变量langrang根本就没有“用上”,跟你之前的Set语句就扯不上任何关系!  也就没有操作到你想要操作的“Worksheets("兰兰兰").rang("a3:f17")” 应该用这样的代码:
Set langrang = Worksheets("兰兰兰").Range("a3:f17")
langrang.ClearContents
Worksheets("兰兰兰").Range("A3").Select
估计这样写也是可以的(不用声明变量 langrang 了):
Worksheets("兰兰兰").Range("a3:f17").ClearContents
Worksheets("兰兰兰").Range("A3").Select
一次性操作几个表:
Sub Main()
   Dim objSht  As Worksheet
   Dim i As Long

   For i = 1& To 5&
      Set objSht = Worksheets("表" & i)
      Call objSht.Range("A3:F17").ClearContents
      ' 似乎只有“活动工作表”才可以改变“活动单元格”
      Call objSht.Activate    ' 先“激活”工作表
      Call objSht.Range("A3").Select
      Set objSht = Nothing    ' 此句可以不要
   Next
End Sub

2,462

社区成员

发帖
与我相关
我的任务
社区描述
VBA(Visual Basic for Applications)是Visual Basic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。
社区管理员
  • VBA
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧