Form 启动一个程序而不预先填充单元格

Form launchs a procedure without filling cells beforehand

我编写了一个程序来确定一些值,将它们输入特定的单元格并启动一个依赖于这些相同单元格的程序。

它工作过一次,但随后程序开始表现得像单元格是空的。

表单包含三个文本框(ratebox、amountbox、cfbox)以及一个组合框:

Private Sub CommandButton1_Click()

If ratebox.value = "" Or amountbox.value = "" Or numbercfbox.value = "" Or cfbox.value = "" _
Or Not IsNumeric(ratebox.value) Or Not IsNumeric(amountbox.value) Or Not IsNumeric(cfbox.value) Or Not IsNumeric(numbercfbox.value) Then
MsgBox "valeur"
Exit Sub
End If

Cells(3, 1) = ratebox.value / 100
Cells(3, 2) = amountbox.value

For i = 1 To numbercfbox.value
Cells(3, i + 2) = cfbox.value
Next

callproc_e1

Unload form_e1

End Sub

程序开始于:

Sub e1s1()
rate = Cells(3, 1)
amount = Cells(3, 2)
numbercf = Cells(3, 3).End(xlToRight).column - 2
'MsgBox (rate & Chr(10) & amount & Chr(10) & numbercf)
ReDim cf(numbercf) As Double

我试过在变量中注册框值并在启动程序之前在单元格中输入变量,但没有用。 在启动程序之前,我已经将所有值放入一个 msgbox:

Cells(3, i + 2) = cfbox.value
Next

MsgBox (ratebox.value & Chr(10) & amountbox.value & Chr(10) & numbercfbox.value & Chr(10) & cfbox.value)

callproc_e1

当 msgbox 出现时,我可以看到单元格中写下了值,但程序仍然像这些单元格是空的一样:numbercf 是 16382。

您的代码将填充活动工作簿的活动工作sheet 中的单元格。如果它有时会失败,你应该指定 sheet 像这样的行:

Sheets("Sheet1").Cells(3, 1) = ratebox.value / 100

我终于找到了问题所在:在我的调用子中,第一个操作是删除所有单元格。

感谢所有试图提供帮助的人。