【问题标题】:VBA select worksheet issueVBA选择工作表问题
【发布时间】:2017-06-03 12:38:48
【问题描述】:

我正在尝试制作一个应用程序,当我单击 Worksheets(“Accueil”)中的“添加供应商”按钮时,您可以将新供应商(法语中的 Fournisseurs)添加到工作表(“Fournisseurs”)中

我想在不打开 Worksheets("Fournisseurs") 的情况下添加新供应商。选择并停留在 Worksheets("Accueil") 中

有什么想法吗?

Sub NouveauFournisseur() 'OK
Dim i As Integer

Worksheets("Fournisseurs").Select 'sélection de la feuille
creation_fournisseur.Show 'affichage de l'userform

If OK Then
    i = 0 'boucle pr trouver la ligne vide où copier les données dans le formulaire
    Do
        i = i + 1
    Loop Until Cells(i, 1) = "" 'jusqu'à ce qu'une ligne soit vide
    Cells(i, 1) = creation_fournisseur.zt_nom
    Cells(i, 2) = creation_fournisseur.zt_adresse
    Cells(i, 3) = Val(creation_fournisseur.zt_tel)
    Cells(i, 4) = Val(creation_fournisseur.zt_fax)
End If

Unload creation_fournisseur 'fermer l'userform
Worksheets("Accueil").Select 'retour page d'acceuil après avoir rentré le fournisseur

结束子

【问题讨论】:

    标签: vba excel


    【解决方案1】:

    类似的东西

    Sub NouveauFournisseur() 'OK
    
        Dim i As Integer, shtF As WorkSheet
    
        Set shtF = ThisWorkbook.Worksheets("Fournisseurs")
    
        creation_fournisseur.Show 'affichage de l'userform
    
        If OK Then
            i = 0 'boucle pr trouver la ligne vide où copier les données dans le formulaire
            Do
                i = i + 1
            Loop Until shtF.Cells(i, 1) = "" 'jusqu'à ce qu'une ligne soit vide
            shtF.Cells(i, 1) = creation_fournisseur.zt_nom
            shtF.Cells(i, 2) = creation_fournisseur.zt_adresse
            shtF.Cells(i, 3) = Val(creation_fournisseur.zt_tel)
            shtF.Cells(i, 4) = Val(creation_fournisseur.zt_fax)
        End If
    
        Unload creation_fournisseur 'fermer l'userform
    
    End Sub
    

    【讨论】:

      【解决方案2】:

      您还可以添加: Sub NouveauFournisseur() 'OK

      Dim i As Integer, shtF As WorkSheet
      
      Set shtF = ThisWorkbook.Worksheets("Fournisseurs")
      
      Worksheets("Accueil").activate
      Worksheets("Accueil").Select
      call moduleX.creation_fournisseur.Show
      call formY.creation_fournisseur.Show
      
      'creation_fournisseur.Show 'affichage de l'userform
      
      If OK Then
          i = 0 'boucle pr trouver la ligne vide où copier les données dans le formulaire
          Do
              i = i + 1
          Loop Until shtF.Cells(i, 1) = "" 'jusqu'à ce qu'une ligne soit vide
          shtF.Cells(i, 1) = creation_fournisseur.zt_nom
          shtF.Cells(i, 2) = creation_fournisseur.zt_adresse
          shtF.Cells(i, 3) = Val(creation_fournisseur.zt_tel)
          shtF.Cells(i, 4) = Val(creation_fournisseur.zt_fax)
      End If
      
      Worksheets("Accueil").activate
      Worksheets("Accueil").Select
      
      Unload creation_fournisseur 'fermer l'userform
      
      Worksheets("Accueil").activate
      Worksheets("Accueil").Select
      

      结束子

      其中 ModuleX 或 FormY 分别包含 creation_fournisseur 的子。

      这样您就可以直接调用表单而无需打开另一张工作表,就像他们在此处建议的那样:Call a Subroutine from a different Module in VBA

      (所有的激活和选择有点矫枉过正,但你明白了)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-28
        • 2022-11-29
        • 2015-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多