在 CSV 中查找 UserForm Caption Variable 以获取其他值

Look up UserForm Caption Variable in CSV to get other values

我想要一个 Word 宏,它可以插入动态签名(最多三个)并且以前从未做过任何 VBA(更多的是 Powershell 家伙...)。

为此,我在 "developer" 界面中创建了一个用户窗体,其中包含 3 个框架和大量单选按钮,其中包含将能够签名的人员姓名作为标题。

由于有 60 人(或更多)可以签名,我考虑过为他们准备一个 CSV 文件,其中包含他们的“姓名、部门、​​职能”。

我的问题是我不知道如何读取 CSV、将其与我的标题进行比较(假设标题 = "Jon Swiss")并为其他三个值初始化变量。

我用一些书签标记了我的文档(仅适用于标题)。

我不知道您是否需要我完成的脚本(与 CSV 无关 - 抱歉...)

Private Sub RHBtn_Accepter_Click_Click()
'Initialisation
Dim i As Integer
'***
'       Signature 1
'*** 
'Pour chaque valeur possible
  For i = 1 To Me.Controls.Count
    'Si i plus petit que le nombre de valeur définie
    If i < Me.Controls.Count Then
      Set MyControl = Me.Controls.Item(i)
      'Si control dispose du tag RHSign1
      If MyControl.Tag = "RHSign1" Then
         'Si une valeur est activée
         If MyControl.Value = True Then
            'Mise en variable du nom en Sign1
            RHSignature1 = MyControl.Caption
            Exit For
         End If
      End If
    End If
  Next i

'***
'       Gettings CSV Value
'***

'***
'       Tagging the bookmarks
'***
           If ActiveDocument.Bookmarks.Exists("RhSignet1") = True Then
              Selection.GoTo What:=wdGoToBookmark, Name:="RhSignet1"
              Selection.TypeText Text:=RHSignature1
           End If
End Sub

感谢您的帮助。

我找到了使用 CSV 的方法。

  'Répertoire
directory = "H:\@SCRIPTS\VBA_MacroWord_DigitRH\"
FileName = "BaseSignatureTest.csv"
'Ouverture de la connexion CSV
Set rs = CreateObject("ADODB.Recordset")
strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & directory & ";" _
& "Extended Properties=""text;HDR=Yes;FMT=Delimited"";"
strSQL = "SELECT * FROM " & FileName
rs.Open strSQL, strcon, 3, 3
rs.MoveFirst

Do
   col1 = rs("Nom")
   col2 = rs("Fonction")
   col3 = rs("DPT")
   col4 = rs("Signature")
   rs.MoveNext

   'Si une valeur a été trouvée et qu'elle corresponds, définition des valeurs
   If col1 = RHSignature2 Then
   MsgBox "Signature2"
   MsgBox col1
   MsgBox col2
   MsgBox col3
   MsgBox col4

似乎有效。也许有更好的方法。但感谢所有花时间阅读我的人。 周末愉快, 乔恩