【问题标题】:Checkbox data from userform来自用户表单的复选框数据
【发布时间】:2018-07-16 21:47:39
【问题描述】:

我在将我创建的 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

【问题讨论】:

  • Private Sub cmdAdd_Click() Dim iRow 只要 Dim ws 作为工作表集 ws = Worksheets("PIDParcelUtilitiesData")

标签: excel vba userform


【解决方案1】:

它一直在放置活动工作表

这是设计使然。

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")

然后您可以使用 is 来限定这些 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

【讨论】:

  • 在使用 ws.Rows.Count 时对上述内容进行调整会给出错误消息(变量未定义)
  • @KelliGlover 然后声明变量?上面有一个Dim 声明。
猜你喜欢
  • 1970-01-01
  • 2016-04-05
  • 2020-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-10
相关资源
最近更新 更多