【发布时间】:2015-12-10 22:14:38
【问题描述】:
我正在尝试创建函数或子函数以在 VBA Excel 中创建报告。我希望用户在两个单独的文本框中输入两个日期。然后,当单击提交按钮时,它会检查文本框是否为空,如果不是,它会执行 CreateReport() Sub 或创建新工作表并向其附加数据的函数。这是我的代码:
用户表单2:
Private Sub Cancel_Click()
Unload Me
End Sub
Private Sub Submit_Click()
If UserForm2.Date1.Value = "" & UserForm2.Date2.Value = "" Then
Value1 = UserForm2.Date1.Value
Value2 = UserForm2.Date2.Value
CreateReport(Value1,Value2)
End If
End Sub
Private Sub UserForm_Initialize()
Date1.SetFocus
Dim Value1 As String
Dim Value2 As String
End Sub
模块1:
Option Explicit
Public Function CreateSheet(Name1 As String, Name2 As String)
Dim WS As Worksheet
Dim FullName As String
FullName = Name1 & "-" & Name2
Set WS = Sheets.Add.Name = FullName
End Function
Public Sub CreateReport(Date1 As String, Date2 As String)
End Sub
【问题讨论】:
-
您对这段代码有疑问吗?如果有,在哪里?是否有错误,或者它只是没有产生您期望的结果?
-
唯一的错误是userforum中的CreateReport()是红色的。
-
如果您没有返回值,请不要创建
Function- 请改用Sub/ 过程。 -
好的,但它仍然是红色的,我将代码放入 sub 并且仍然是红色的。
-
重点是
Function返回一个值,而Sub没有。在编写代码时也要考虑正确缩进代码,并在以后必须阅读代码时感谢自己。