如何在VBA

时间:2018-02-23 11:15:02

标签: vba excel-vba excel

我使用文件查找器代码搜索我的数据库以查找所需的文件。当我搜索我的数据库时,将有多个文件具有相同的部件号但规格不同。在我的下面的代码中;

  

工作总结:

     

我有一个* .txt文件,我的产品的部件号如螺栓,螺丝,   坚果,春天。我很久以前就组织了一个数据库并创建了一个   每个人的数据库。通常我有多个文件   相同的部件号(因为其他规格可能不同)。一世   有一个功能来查找零件,如果我debug.print他们我可以看到   成立的部分。

我需要StackoverFlow的VBA专家的指导/帮助

  1. 第一个问题
  2. 我有这样的txt文件:

    screw: AL9206689
    bolt: OP86596
    spring: GHJ22341
    

    它的唯一一小部分会有很多部分,最多10或15个。

    如果我手动将数据库路径和部件号写入sub,它会正确地给出结果。但我想自动转换这个过程。我怎么能这样做?

    1. 第二个问题
    2. 我还将创建一个按钮,其标题将被创建为部件号。例如

        
          
      • 螺丝..................找到3个文件(Activex命令按钮标题)
      •   
      • Nuts ...................发现1个文件(Activex命令按钮标题)
      •   
      • Spring .................找到5个文件(ActiveX命令按钮标题)
      •   

      如何为每个用户打开用户表单,以及如何在该用户表单中列出已创建的文件。

      因为当我用我的sub / func变量搜索时,存储了螺丝创建的文件数据。但是现在我的变量将继续存储,我的变量将存储Nuts创建的文件数据。我不知道如何处理这个问题。

      程序输入:

      1.   

        db_Directory:是文件的数据库(例如bolt_db,nut_db,spring_db)

      2.   

        PartFile:是部件号或部件代码(例如NO5551122)

      3.   

        扩展名是所需的文件扩展名(例如.txt,.xlsx)

      4.   

        按钮:是标题中的activex命令按钮我将写入已创建的文件编号。当我点击我想初始化一个   用户表格   使用acivex列表框选择后,列表框中列出了哪些项目   文件,然后我将单击选择按钮,然后它写入此文件   文件的完整路径。

      5. 我的功能:

        Sub FindFiles(db_Directory, PartFile, extension, button)
        
         Dim iFilesNum As Integer
         Dim iCount As Integer
         Dim sMyFiles() As String
         Dim blFilesFound As Boolean
         Dim PartFile As String
         Dim db_Directory As String
         Dim extension As String
         Dim button As MSForms.CommandButton
        
         blFilesFound = PartFinder.FindFiles(db_Directory, _
             sMyFiles, iFilesNum, "*" & PartFile & extension, True)
         If blFilesFound Then
        button.Caption = iFilesNum & " files found"
             For iCount = 1 To iFilesNum
                 Debug.Print sMyFiles(2, iCount)
              Next
         Else
         Debug.Print "Nothing Found"
         End If
         End Sub
        

1 个答案:

答案 0 :(得分:1)

快速启动问题:为什么要在第一行之外定义参数类型?

Sub FindFiles(db_Directory As String, PartFile As String, extension AS String, button As MSForms.CommandButton)

关于问题。您可以使用.TopLeftCell属性来确定按钮所在的行。您可以使用它来计算行上的部分:

MsgBox button.TopLeftCell.Row 'What row in the worksheet is the button on?

因此,如果部件位于单元格A2中,则部件号位于单元格B2中,文件扩展名位于单元格C2中,按钮位于单元格{{ {1}}:

D1

如果你知道所有Sub FindFiles(db_Directory AS String, button as MSForms.CommandButton) Dim PartFile AS String, extension AS String PartFile = button.TopLeftCell.EntireRow.Cells(1, 2).Value 'Cell in column B on the same Row as the button extension = button.TopLeftCell.EntireRow.Cells(1, 3).Value 'Cell in column C on the same Row as the button 'Put your other code after this 'Put your other code before this End Sub 选项是什么,你可以使用Switch语句来扩展它:

db_Directory