白话Excel函数公式 Office易学宝微视频教程合集(Excel+Word+PPT)
笨办法学VBA(从入门到精通) 高效办公必会的Office实战技巧
财务总监的Excel私房课 Excel数据透视表实战秘技
Excel图表神技
查看: 1809|回复: 23

课前练习2-录制个简单的宏

[复制链接]
发表于 2014-12-4 23:27:24 | 显示全部楼层 |阅读模式
本帖最后由 临时户口 于 2014-12-19 21:58 编辑

本题要求录制一个宏,将B2:F20区域所有数值为6的单元格替换为15。无版本限制,只要能达到效果即可。请录制宏代码后提交文件,注意不要重复占楼哦!答对可奖励20登攀。
能优化代码酌情加分,上限不超过30登攀。

本题来自11107班,由acecrazy老师提供


本题答题截止到2014年12-14日


该贴已经同步到 临时户口的微博

录制简单的宏1.rar

3.61 KB, 下载次数: 59

回复

使用道具 举报

发表于 2014-12-5 07:50:20 | 显示全部楼层
11126-课前-younghuman-练习2.rar (15.41 KB, 下载次数: 6)

点评

代码对你来说这个代码不是最优,还可以在优化  发表于 2014-12-18 23:00

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 补分

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-5 09:57:05 | 显示全部楼层
本帖最后由 erin373 于 2014-12-19 10:10 编辑


Sub replace()
'
' replace Macro
'
    Range("B2:F20").Select
    Selection.replace What:="6", Replacement:="15", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
End Sub

录制宏.rar

12.23 KB, 下载次数: 1

录制宏.rar

12.23 KB, 下载次数: 0

点评

文件没代码,明天赶快补上,不要重复占楼,在你现在这贴编辑  发表于 2014-12-18 23:03

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 淡定

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-5 10:49:36 | 显示全部楼层
本帖最后由 lwwcom 于 2014-12-5 16:12 编辑

录制简单的宏1-lwwcom

录制简单的宏1-lwwcom.rar

8.85 KB, 下载次数: 2

点评

代码还可优化  发表于 2014-12-18 23:05

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 淡定

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-5 14:01:19 | 显示全部楼层
本帖最后由 璎珞紫贝 于 2014-12-9 13:43 编辑

好像没对,重新再发次~ 录制简单的宏1.rar (9.31 KB, 下载次数: 7)

点评

颜色能用代码表示,就可以给你加分  发表于 2014-12-18 23:08

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 淡定

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-6 21:03:27 | 显示全部楼层
本帖最后由 小丽_83 于 2014-12-6 21:05 编辑

交练习了哦~~~
  1. Sub 练习2()
  2.     Dim cell As Range
  3.     For Each cell In Sheets("练习一").Range("a2:e20")
  4.         If cell.Value = 6 Then cell.Value = 15
  5.     Next
  6. End Sub
复制代码


11126 练习2 小丽.zip

9.44 KB, 下载次数: 2

点评

range的区域少了一列,你这循环代码只是把6变15 不能还原。  发表于 2014-12-18 23:10

评分

参与人数 1登攀 +15 收起 理由
临时户口 + 15 补分

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-8 00:23:59 | 显示全部楼层
本帖最后由 cleverzhzhf 于 2014-12-8 00:34 编辑

<方法一>先录制一个:
  1. Sub ReplaceSix()
  2.     Range("B2:F20").Replace What:="6", Replacement:="15", LookAt:=xlWhole
  3. End Sub

复制代码
<方法二>遍历循环的:
  1. Sub ReplaceSix2()
  2.     Dim cell As Range
  3.     For Each cell In Range("B2:F20")
  4.         If cell = 6 Then
  5.             cell = 15
  6.         End If
  7.     Next
  8. End Sub
复制代码
有个疑问:想用以下方式对数组循环的
arr=Range("B2:F20")
For Each cell In arr

可是For Each对这个数组似乎不感冒。难道只能用:For i = 1 to Ubound(arr)这种方式循环吗?

点评

for each 对数组是有用的,关键是你的cell定义是不是错了  发表于 2014-12-18 23:30

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 赞一个!

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-8 09:55:52 | 显示全部楼层
我来啦啦啦啦啦

录制简单的宏1.zip

14.78 KB, 下载次数: 3

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 淡定

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-8 10:17:22 | 显示全部楼层
Sub 宏1()
' 将6替换为15
    Range("B2:F20").Replace What:="6", Replacement:="15", LookAt:=xlPart, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

点评

那么多参数干嘛  发表于 2014-12-18 23:32

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 淡定

查看全部评分

回复 支持 反对

使用道具 举报

发表于 2014-12-8 15:03:41 | 显示全部楼层
这个挺简单!

11126-录制简单的宏-Nami_excel.zip

10.33 KB, 下载次数: 2

评分

参与人数 1登攀 +20 收起 理由
临时户口 + 20 淡定

查看全部评分

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 入学

本版积分规则

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