【问题标题】:Loop through data query based on values entered in an Inputbox and UserForm根据输入框和用户窗体中输入的值循环数据查询
【发布时间】:2016-08-24 18:49:31
【问题描述】:

我正在编写一个脚本,该脚本最终将遍历工作表“数据”上当前的数据范围。条件将通过Inputbox(日期)和UserForm(环境)获得,并根据这些结果在查询中查找日期和环境并将任何匹配的结果粘贴到另一个工作表(应用程序)

这是我迄今为止开发的:

Private Sub Workbook_Open()
Dim NextRelease As Long
Set trelinfo = Sheets("TRELINFO")

If MsgBox("Would you like to promote the next release in batch?", vbQuestion _
+ vbYesNo, "Promote the next release?") = vbYes Then

NextRelease = CLng(CDate(InputBox("Please enter the date of the next _
release", "Next Release", "DD/MM/YYYY")))

Worksheets("Active or Review").Range("F4").Value = NextRelease

checkblank = WorksheetFunction.CountIf(trelinfo.Range("A2:A4"), _
NextRelease)

If checkblank <> 0 Then
    ReleaseDate = Application.WorksheetFunction.VLookup(NextRelease, _
trelinfo.Range("A2:A4"), 1, False)
End If

If NextRelease = ReleaseDate Then
Else
If MsgBox("Not a valid Release Date", vbCritical + vbOKOnly, "No Release") _
= vbOK Then Exit Sub
End If

If MsgBox("The Daily Release Process will now pull in all iForms equal to _
" & (CDate(NextRelease)), vbOKOnly, "Move") = vbOK Then

Load FrmEnv
FrmEnv.Show
End If

End If
End Sub

我的问题是我遇到了障碍,我是 InputBoxUserForms 的新手,不知道如何使用这些值来循环一系列数据。

UserForm 有一个 Combobox,它当前查看定义的范围

ComboEnv.List = Application.WorksheetFunction.Transpose(ThisWorkbook.Names("Environment").RefersToRange)

我不希望这个脚本完成 - 尽可能好,相反,我希望得到关于如何使用在 UserFormInputBox 中输入的值来查看一系列数据的提示. 提前谢谢你。

【问题讨论】:

    标签: excel loops userform inputbox vba


    【解决方案1】:
    dim rCell as range
    
    for each rCell in Environment.Cells
    
    '... code that checks for NextRelease variable
    
    next rCell
    

    让我知道这是否有帮助

    【讨论】:

      【解决方案2】:

      在选择组合框值后,将您的“环境”存储为变量,在您的用户表单代码中使用myEnvironment = ComboEnv.Value。在工作簿代码中使用 Public myEnvironment As String 将其声明为公共变量。

      一旦用户表单关闭,FrmEnv.Show 下面的代码就会执行。您将能够使用此处的 NextRelease 和 myEnvironment 变量来循环访问您的数据。

      【讨论】:

      • 我已将 NextRelease 声明为公共变量,但我不确定这有什么帮助?但是,当尝试声明 myEnvironment = ComboEnv.Value 时,我不断收到 424 Object required 错误。
      • 很高兴知道,谢谢!我对 VBA 的理解仍然相当基础,而且我之前从未在 UserForms 上工作过,因此面临挑战。我将 myEnvironment 放在 frmEnv.show 之后 - 请参见上面的模块中没有。
      • 您将无法从那里访问组合框。您的用户表单上是否有一个按钮供用户在提交值后按下?如果是这样,请将您的myEnvironment = ComboEnv.Value 放在按下按钮后执行的代码中(在设计模式下双击按钮以找到此子)。编辑:事实上,还将 myEnvironment 声明为 NextRelease 声明旁边的公共变量。
      • 我做错了。我已经编辑了我的答案,如果没有意义,请告诉我。
      • 我现在已将 myEnvironment 分配添加到提交按钮,但是在 Unload frmEnv 之后我已将 msgbox 添加到此工作簿以查看是否正在记录变量,但它是空白的。 424 错误不再存在。
      猜你喜欢
      • 2019-06-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-24
      相关资源
      最近更新 更多