求解:在excel中,用宏实现以下操作:VBA怎样写?

在excel中,用宏实现:点击一个按钮,第一次在A1单元格中输入1.再点击一次这个按钮,在A2单元格中输入1。重复……直到第50次在A5输入1.再点的话就是在A1输入,然... 在excel中,用宏实现:
点击一个按钮,第一次在A1单元格中输入1.
再点击一次这个按钮,在A2单元格中输入1。
重复……直到第50次在A5输入1.
再点的话就是在A1输入,然后是A2,……
期间可以进行其他操作,例如点一次按钮,在B1输入一些字,再点按钮。
VBA中怎样编写?
如果可以,请解释以下vba每个语句的含义,谢谢!
更正:第四行中A5应为A50。
展开
 我来答
百度网友eb9c235
2013-06-10 · TA获得超过478个赞
知道小有建树答主
回答量:511
采纳率:100%
帮助的人:304万
展开全部

由于控件工具箱调用出来的控件没有tag属性,所以干脆用窗体控件中的按钮来做,但需要设置全局变量,代码放在thisworkbook中


追问
这种方法我试过,但效果不好。谢谢!
水生包口特思G
2013-06-11 · TA获得超过477个赞
知道小有建树答主
回答量:1167
采纳率:0%
帮助的人:338万
展开全部
Sub SetColumnAValue()
Dim endRow As Long '定义末行变量
Dim actionRow As Long '定义写入行变量

endRow = Range("A" & Rows.Count).End(xlUp).Row '获取A列末行

If endRow >= 50 Then '如果末行大于等于第50行
If MsgBox("A列末行已经达到50行,是否清空A列之后重新赋值?", vbYesNo + vbMsgBoxSetForeground, "系统提示") = vbNo Then '弹出提示对话框
Exit Sub '如果选择否,则结束
Else
Columns("A:A").ClearContents '选择是,清除A列内容,程式继续执行
End If
End If

endRow = Range("A" & Rows.Count).End(xlUp).Row '重新获取A列末行

If endRow <= 1 And Trim(Range("A1").Value) = "" Then '如果A列末行是第一行,并且A1单元格为空
actionRow = 1 '第一行为写入行
Else
actionRow = endRow + 1 '否则写入行为末行加1行
End If

Range("A" & actionRow).Value = 1 '在A列最后写入1
Range("A" & actionRow).Select '选中写入单元格
End Sub

以上这段代码,是根据A列末行来的,1只会添加在A1:A50的末尾单元格。它的缺点是:只看末行,无视A列中间是否有空单元格;A列末行超出50行会清空A列。优点就在于无视其它任何操作,包括关闭之后再开启。

另外,清水蛙鸣的代码,根据点击次数,循环再A1到A50中输入1.但它的缺点是重启Excel会被重置。也就是重新从A1开始写入。另外,常时间的待机,也可能造成变量丢失。如果,在它的代码上来增加一个隐藏页面来获取写入的行,那就可以解决重启变量被重置或者变量丢失的问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
skyzxh

2013-06-10 · 知道合伙人软件行家
skyzxh
知道合伙人软件行家
采纳数:2623 获赞数:8345
毕业于中科院,硕士,30年工程从业经验。现任公司技术负责。

向TA提问 私信TA
展开全部
sub Test()
r=range("a65536").end(3),row
if r=50 then r=0
cells(r+1,1)=1
end Sub
追问
请解释一下这个的含义,谢谢!
追答
Sub Test()
r = Range("a65536").End(3).Row
If r = 50 Or Cells(1, 1) = "" Then
r = 0
Range("a1:a50").ClearContents
Cells(r + 1, 1) = 1
Else
Cells(r + 1, 1) = 1
End If
End Sub
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式