gpt4 book ai didi

vba - Excel VBA for循环中递增变量

转载 作者:行者123 更新时间:2023-12-01 22:19:41 25 4
gpt4 key购买 nike

我仍然是 VBA 编程的新学习者,我遇到了一个似乎无法找到解决方案的问题。我正在尝试创建一本工作簿来处理食谱。我正在调用一个用户表单,用于在带有多个文本框输入(约 96 个)的宏中添加菜谱。当我输入所有成分、数量、单位并按“确定”按钮后,我希望它将用户表单中的内容写入工作表。所有文本框均以升序排列的数字结尾(例如 .txtIngredient1、.txtIngredient2,...)。是否可以使用 for 循环将 Me.txtIngredientX.Value 复制到工作表上的某个范围?

我当前代码的片段:

Sheets("Recipes").Range("B" & addatrow + 0) = Me.txtIngredient1.Value
Sheets("Recipes").Range("B" & addatrow + 1) = Me.txtIngredient2.Value
Sheets("Recipes").Range("B" & addatrow + 2) = Me.txtIngredient3.Value
Sheets("Recipes").Range("B" & addatrow + 3) = Me.txtIngredient4.Value
Sheets("Recipes").Range("B" & addatrow + 4) = Me.txtIngredient5.Value
Sheets("Recipes").Range("B" & addatrow + 5) = Me.txtIngredient6.Value
Sheets("Recipes").Range("B" & addatrow + 6) = Me.txtIngredient7.Value
Sheets("Recipes").Range("B" & addatrow + 7) = Me.txtIngredient8.Value
Sheets("Recipes").Range("B" & addatrow + 8) = Me.txtIngredient9.Value
Sheets("Recipes").Range("B" & addatrow + 9) = Me.txtIngredient10.Value
Sheets("Recipes").Range("B" & addatrow + 10) = Me.txtIngredient11.Value
Sheets("Recipes").Range("B" & addatrow + 11) = Me.txtIngredient12.Value
Sheets("Recipes").Range("B" & addatrow + 12) = Me.txtIngredient13.Value

我尝试过我唯一知道要做的事情,就是这样:

for i = 1 to 32
Sheets("Recipes").Range("B" & addatrow - 1 + i) = me.txtIngredient & i.value

这不起作用。注意:addatrow 是宏中的一个变量,它指示下一个配方应插入的位置。

非常感谢任何帮助!

谢谢!

最佳答案

试试这个:

请注意,nameForm 必须是您表单的名称,With Me 似乎不起作用。

for i = 1 to 32
Sheets("Recipes").Range("B" & addatrow - 1 + i) = nameForm.Controls("txtIngredient" & i).Value

关于vba - Excel VBA for循环中递增变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26791729/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com