【问题标题】:Passing a control name as string to the Form Object in VBA将控件名称作为字符串传递给 VBA 中的表单对象
【发布时间】:2019-06-25 21:42:42
【问题描述】:

我将控件名称作为字符串传递给子控件,因为代码可以应用于许多表单和控件以及子表单控件。当作为字符串传递时,我不知道如何处理控件:With f Form Object.

  This works fine:
  Dim sControlName as string
  sControlName = "myControlName"
  Forms!myFormName.myChildFormName.Form(sControlName).Top = {some value}

  This will also work:
  Dim f as Form
  Set f = Forms!myFormName
  With f
      .myChildFormName.Form(sControlName).Top = {some value}
 End With

  This does not work:
  Dim f as Form
  Set f = Forms!myFormName.myChildFormName.Form
  With f
      'How do I get this below to work?
      (sControlName).Top = {some value}
  End With

【问题讨论】:

    标签: vba forms object


    【解决方案1】:

    经过更多的反复试验,正确的构造方法是:

     Dim sControlName as string
     Dim f as Form
     sControlName = "myControlName"
     Set f = Forms!myFormName.myChildFormName.Form   {or any form }
    
     f(sControlName).Top = { some value }
    
     i.e. don't use With f / End With
    

    【讨论】:

      猜你喜欢
      • 2020-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多