VBA Excel中的子对象或函数
我正在尝试创建一个函数或子函数,以便在VBA Excel中创建报表。我希望用户在两个单独的文本框中输入两个日期。然后,当单击submit按钮时,它会检查文本框是否为空,如果不是,则会执行CreateReport()子或函数,该子或函数将创建一个新工作表并向其添加数据。这是我的密码: 用户表单2:VBA Excel中的子对象或函数,vba,excel,Vba,Excel,我正在尝试创建一个函数或子函数,以便在VBA Excel中创建报表。我希望用户在两个单独的文本框中输入两个日期。然后,当单击submit按钮时,它会检查文本框是否为空,如果不是,则会执行CreateReport()子或函数,该子或函数将创建一个新工作表并向其添加数据。这是我的密码: 用户表单2: Private Sub Cancel_Click() Unload Me End Sub Private Sub Submit_Click() If UserForm2.Date1.Value =
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
当没有输入日期时,您正在调用
CreateReport
也
应该是
CreateReport Value1, Value2
除非调用函数或使用Call关键字,否则不要使用括号
及
应该是
Set WS = Sheets.Add()
WS.Name = FullName
您对此代码有问题吗?如果是,在哪里?是否存在错误,或者它只是不能产生您期望的结果?唯一的错误是CreateReport()在userforum中是红色的。如果不返回值,不要使用
函数
,而是使用Sub
/过程。好的,但它仍然是红色的,我将代码放入Sub,并且仍然是红色的。重点是函数
返回值,而Sub
不返回值。此外,在编写代码时,请考虑正确地缩进代码,然后在阅读时感谢自己。非常感谢。我非常习惯用C++和其他语言编码,我认为你必须使用括号来完成这个调用。
Set WS = Sheets.Add.Name = FullName
Set WS = Sheets.Add()
WS.Name = FullName