Excel精英培训网

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

[已解决]求助VBA窗口设置

[复制链接]
发表于 2014-1-4 06:20 | 显示全部楼层 |阅读模式
求助高手, 在设置窗口时,如何设置使得点击OK程序继续运行,点击 Cancel窗口消失或是重新运行。(或是点击右上角红叉关闭窗口也可以),以下是我目前编辑的代码:

最佳答案
2014-1-6 10:03
inputbox函数:
如果用户单击 OK 或按下ENTER ,则 InputBox 函数返回文本框中的内容。
如果用户单击 Cancel,则此函数返回一个长度为零的字符串 ("")。

application.input方法
使用 InputBox 可以显示一个简单的对话框,以便可以输入要在宏中使用的信息。
此对话框有一个“确定”按钮和一个“取消”按钮。
如果选择了“确定”按钮,则 InputBox 将返回对话框中输入的值。
如果单击“取消”按钮,则 InputBox 返回 False。
另外,用这个方法可以校验输入的数据类型,可以引用单元格。
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
 楼主| 发表于 2014-1-4 06:20 | 显示全部楼层

Sub changeyear()

Dim changeyear As Integer

Sheets("Report").Activate
Range("E13").Select
ActiveCell.Value = InputBox("Please enter the Start year")

Range("E17").Select
ActiveCell.Value = InputBox("Please enter the second year")

Range("E21").Select
ActiveCell.Value = InputBox("Please enter the third year")

Range("E25").Select
ActiveCell.Value = InputBox("Please enter the fourth year")

Range("E29").Select
ActiveCell.Value = InputBox("Please enter the currtnt year")

Range("E33").Select
ActiveCell.Value = InputBox("Please enter the next year")

'This system is requiring the user to put 5 years' historical data, and it will predict the next year's sales & cost

MsgBox "Now, please input the data of sales"

End Sub

Sub Datainput()

Dim Datainput As Integer
' This macro allows user to input 5 years' history data

Sheets("Report").Activate
Range("G12").Select
ActiveCell.Offset(1, 0).Value = InputBox("Please enter the Sales Units of Product")




回复

使用道具 举报

 楼主| 发表于 2014-1-4 06:22 | 显示全部楼层
子夜蜘蛛 发表于 2014-1-4 06:20
Sub changeyear()

Dim changeyear As Integer

求高手帮帮忙,多谢多谢了!!


很抱歉分了三次提交,不知道为什么老说我的上传内容含不良信息。。。
回复

使用道具 举报

发表于 2014-1-4 09:01 | 显示全部楼层
你说的是消息框还是用户窗体?
直接把文件压缩上传附件就可以了。
回复

使用道具 举报

 楼主| 发表于 2014-1-4 16:40 | 显示全部楼层
hwc2ycy 发表于 2014-1-4 09:01
你说的是消息框还是用户窗体?
直接把文件压缩上传附件就可以了。

是消息框
回复

使用道具 举报

发表于 2014-1-4 16:53 | 显示全部楼层
消息框有返回值的。
  1.     If MsgBox("测试点击的按钮", vbOKCancel) = vbOK Then
  2.         MsgBox "你点击了OK"
  3.     Else
  4.         MsgBox "你点击了 取消 或 X"
  5.     End If
复制代码
回复

使用道具 举报

 楼主| 发表于 2014-1-5 04:06 | 显示全部楼层
hwc2ycy 发表于 2014-1-4 16:53
消息框有返回值的。

恩不好意思看了您的回复,觉得我想问的是用户窗体问题。 我不想让窗口显示我点击了什么,就是想点击过后让窗口执行命令。 现在我输入的代码,输入完成后,不管我点击 Ok 或是 取消按钮,窗口显示的都还是会按照 Ok 进行下去。。不知道能不能帮忙解决。多谢了~
回复

使用道具 举报

发表于 2014-1-5 09:18 | 显示全部楼层
子夜蜘蛛 发表于 2014-1-5 04:06
恩不好意思看了您的回复,觉得我想问的是用户窗体问题。 我不想让窗口显示我点击了什么,就是想点击过后让 ...

那你上传附件。
回复

使用道具 举报

 楼主| 发表于 2014-1-6 04:36 | 显示全部楼层
hwc2ycy 发表于 2014-1-5 09:18
那你上传附件。

您好,就是这个代码,如果您试着按按钮' change year' 运行的话,会发现无论点击Ok按钮或是Cancel按钮,代码都会继续进行下去,但是我想要的效果是按cancel可以出一个对话框说请重新输入,或是直接关闭该对话框。

代码问题.rar

15.38 KB, 下载次数: 4

回复

使用道具 举报

发表于 2014-1-6 09:59 | 显示全部楼层
子夜蜘蛛 发表于 2014-1-6 04:36
您好,就是这个代码,如果您试着按按钮' change year' 运行的话,会发现无论点击Ok按钮或是Cancel按钮,代 ...

直接用INPUTBOX是没法检测是否有输入的。
你得改用application对象的inputbox方法。


回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 23:06 , Processed in 0.767323 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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