【发布时间】:2016-02-11 01:53:15
【问题描述】:
我正在制作某种足球数据库,我将在其中使用用户表单输入数据,并且我想从我的 excel 数据库中检索数据。
我有一个名为“wedstrijden”的工作表。 此工作表包含以下列:Date、HomeTeam、AwayTeam、HomeScore、AwayScore、HomeOdds 和 AwayOdds。
我的另一个工作表名为“ingevenuitslagen”。 此工作表包含我的名为“UitslagenIngeven”的用户表单。
使用下面的代码,我可以将用户表单中的数据输入到我的“wedstrijden”工作表中:
Private Sub putAway_Click()
Dim ingevenuitslagen As Worksheet
Set ingevenuitslagen = ThisWorkbook.Sheets("wedstrijden")
NextRow = ingevenuitslagen.Cells(Rows.Count, 1).End(xlUp).Row + 1
ingevenuitslagen.Cells(NextRow, 1) = CDate(date_txt.Text)
ingevenuitslagen.Cells(NextRow, 2) = UitslagenIngeven.cboHomeTeam
ingevenuitslagen.Cells(NextRow, 3) = UitslagenIngeven.cboAwayTeam
ingevenuitslagen.Cells(NextRow, 4) = UitslagenIngeven.cboHScore
ingevenuitslagen.Cells(NextRow, 5) = UitslagenIngeven.cboAScore
ingevenuitslagen.Cells(NextRow, 6) = Val(UitslagenIngeven.hodds_txt.Text)
ingevenuitslagen.Cells(NextRow, 7) = Val(UitslagenIngeven.aodds_txt.Text)
End Sub
但现在我想使用一个名为“GetData”的按钮将最后一行(工作表“wedstrijden”)的值返回到我的用户窗体,但我不知道如何编写该按钮。
【问题讨论】:
-
您可以使用SpecialCells
Dim lastRow As Long lastRow = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row获取最后一行 -
Set ingevenuitslagen = ThisWorkbook.Sheets("wedstrijden")?你不是说Set ingevenuitslagen = ThisWorkbook.Sheets("ingevenuitslagen")吗?还是Set wedstrijden = ThisWorkbook.Sheets("wedstrijden")?有点乱^^ -
@MalawiM :我不认为问题在于获得最后一行,因为他使用了
NextRow = ingevenuitslagen.Cells(Rows.Count, 1).End(xlUp).Row + 1。顺便说一句UsedRange不是解决这类问题(查找数据)的好方法,看看:stackoverflow.com/questions/11169445/… -
Tnx 供输入人员使用。你能告诉我是否也可以使用 vba 一次收起(或检索)10 行?因此,如果我制作一个可以输入 10 行的用户表单。我可以一次收起这 10 行吗?