我在将我创建的excel用户窗体的复选框信息返回到excel数据库时遇到问题。它将继续在我的excel工作簿中放置活动工作表而不是工作表2。
Sub CheckBox2_Click()
Dim iRow As Long
iRow = Range("A" & Rows.Count).End(xlUp).Offset(1).Row
If CheckBox2 Then
Range("G" & iRow) = "Received"
Else
Range("G" & iRow).ClearContents
End If
End Sub
我以为我需要设置以下内容才能使其正常工作,但这没有帮助。
iRow = Application.Workbooks("PIDParcelUtilities.xlsm").Worksheets("PIDParcelUtilitiesData").Range("A" & Rows.Count).End(xlUp).Offset(1).Row
答案 0 :(得分:3)
它会一直放置活动工作表
那是设计使然。
iRow = Range("A" & Rows.Count).End(xlUp).Offset(1).Row
Range
指的是哪个工作表?
Range("G" & iRow) = "Received"
在类模块(Range
是类)中的不合格UserForm
调用隐式引用了ActiveSheet
。
拉出您要使用的工作表对象引用:
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("PIDParcelUtilitiesData")
然后您可以使用来限定这些Range
通话:
iRow = ws.Range("A" & ws.Rows.Count).End(xlUp).Offset(1).Row
If CheckBox2 Then
ws.Range("G" & iRow) = "Received"
Else
ws.Range("G" & iRow).ClearContents
End If