ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 898|回复: 15

[求助] 请教:窗体信息输入、数据运算,重置

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-3-25 21:26 | 显示全部楼层 |阅读模式
请老师帮助,给这个窗体注入灵魂:
snipaste_20230325_203345.jpg

这个窗体要用于附件的多个 Sheet 中,例如: Sheet8, Sheet14, Sheet1, Sheet17 等。

希望实现的功能:
1)希望当窗体出现时,窗体的文本框总是显示 Sheet17 的 F1 单元格的值,该值是百份数,默认为 100%,如附件所示。
2)当用户在窗体文本框输入值,按“确定”键后,把该值输入到 Sheet17 的 F1 单元格。例如,在窗体文本框输入:150 后,Sheet17 的 F1 单元格值由 100% 变为 150%。
3)如果 Sheet17 的 F1 单元格的值发生改变,例如原为 100%, 现改为 150%,
     就把 Sheet7 (请注意不是Sheet17) H 列的数据 (H 列数据的行数变化不定,且中间会有空行)乘以 Sheet17 的 F1 单元格的值,结果四舍五入保留 1 位小数,
      并把运算结果返回到 Sheet7 的 G 列。(附件中该列,我暂时用 IF公式表现模拟效果。)
  (这句说明不知是否多余:如果窗体输入的值是100,即没改变 Sheet17 的 F1 单元格的值,则什么都不用做。)
4)当点击窗体中的“重置”按钮,则把 Sheet17 的 F1 单元格的值设置为 100%,然后,把 Sheet7 的 H 列的数值复制粘贴到 G 列。(最好是只粘贴数据,不改变G列格式。)

为了确保以上描述清晰周密,我花了不少时间梳理,希望表达得足够清楚且避免啰嗦。
请老师指教,谢谢!

窗体输入.rar (61.15 KB, 下载次数: 9)


TA的精华主题

TA的得分主题

发表于 2023-3-26 09:59 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-3-26 10:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
中間有空行//小數一位//
摸著寫

Private Sub UserForm_Initialize()
系數 = Sheet17.[f1] * 100
End Sub

Private Sub 重置_Click()
系數 = 100: Call 系數更改
End Sub

Private Sub 确定_Click()
If IsNumeric(系數) Then Call 系數更改
End Sub

Sub 系數更改()
Pcnt = 系數 / 100
If Sheet17.[f1] = Pcnt Then Exit Sub
Sheet17.[f1] = Pcnt
With range(Sheet7.[g3], Sheet7.[h65536].end(3)(3, 0))
     .formula = "=IF(N(H3)=0,"",ROUND(H3*" & Pcnt & ",1))"
     .Value = .Value
End With
End Sub

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-26 12:03 | 显示全部楼层
准提部林 发表于 2023-3-26 10:43
中間有空行//小數一位//
摸著寫

谢谢准提部林老师!


测试时,“确定”,和 “重置” 都会出现以下错误,请问如何解决?
代码是按您写的,只是把汉字改为简体,因为如果是繁体,在我的系统会出错。
另,改了系数,例如改为 120, 运行后,sheet7 G 列的值是小数点2位,不是1位。
snipaste_20230326_115447.jpg

窗体输入-v1.rar (59.84 KB, 下载次数: 6)


TA的精华主题

TA的得分主题

发表于 2023-3-26 12:04 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
vexce 发表于 2023-3-26 12:03
谢谢准提部林老师!

.formula = "=IF(N(H3)=0,"""",ROUND(H3*" & Pcnt & ",1))"

瞎著寫, 沒注意//

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-26 12:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

谢谢蓝老师。

运行时出现以下情况:

改了系数,按 “确定”后,Sheet 7 H 列的值和格式都变了,这列的数据是不应该被改动的。同时, Sheet 7 G 列返回的值也不对。如下图 1)所示。

按 “重置” 后,出现错误提示,如下图 2)所示

snipaste_20230326_121837.jpg

窗体输入-蓝.rar (57.74 KB, 下载次数: 5)

TA的精华主题

TA的得分主题

发表于 2023-3-26 15:29 | 显示全部楼层
参与一下...................
这个窗体要用于附件的多个 Sheet 中,例如: Sheet8, Sheet14, Sheet1, Sheet17 等。这意思是系数在多个表格变动,还是如sheet7的数据运算在多表变动?

窗体输入3.26.rar

69.86 KB, 下载次数: 8

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-26 15:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
准提部林 发表于 2023-3-26 12:04
.formula = "=IF(N(H3)=0,"""",ROUND(H3*" & Pcnt & ",1))"

瞎著寫, 沒注意//

效果太棒了,正是我想实现的。谢谢!

想再请教:
希望在其他模块中,通过代码实现此窗体的 "重置" 功能,
(即,如果 Sheet17.[f1] = 1,就 EXIT SUB, 否则就把 Sheet 7 H 列的数据复制粘贴到 G列)
我笨拙地模仿了一段 sub,放在模块10中,运行正常。
能否帮掌掌眼,看这个SUB有无问题?或有无更好的方式?

Sub 重置()
系数 = Sheet17.[f1]
系数 = 100

Pcnt = 系数 / 100
If Sheet17.[f1] = 1 Then Exit Sub
Sheet17.[f1] = Pcnt
With Range(Sheet7.[g3], Sheet7.[h65536].End(3)(3, 0))
     .Formula = "=IF(N(H3)=0,"""",ROUND(H3*" & Pcnt & ",1))"
     .Value = .Value
End With
End Sub
窗体输入-准.rar (61.39 KB, 下载次数: 3)

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-3-26 15:48 | 显示全部楼层
xunanming 发表于 2023-3-26 15:29
参与一下...................
这个窗体要用于附件的多个 Sheet 中,例如: Sheet8, Sheet14, Sheet1, Shee ...

谢谢!测试了,效果是我期望的!
您的问题有点绕。我那句描述,意思是,需要在多个sheet中设置”系数“,所以希望在多个sheet中使用此窗体,以免每次要跑到某一sheet才能设置。

另,请问,可否把以下的运算结果四舍五入,保留一位小数?
arr(i, 1) = arr(i, 2) * 系数 / 100

TA的精华主题

TA的得分主题

发表于 2023-3-26 15:56 | 显示全部楼层
百分比固定在sheet17
計算結果為任意表???

那將 sheet7 改成 activesheet 吧!!!
但會容易錯誤執行, 因為無法確認當前表是否是正確的~~
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-9-29 16:18 , Processed in 0.045944 second(s), 16 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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