0

私は最初に、私はvbscriptに非常に慣れていないことを付け加えたいと思います。これが私が見逃している単純なものであれば申し訳ありません. 私は検索しましたが、正しいコードを思い付くのに問題があります (ただし、このサイトは私を大いに助けてくれました)。

とにかく、フォームにデータを入力して Excel スプレッドシートに入力できる HTA を作成しました。シリアル番号がスプレッドシートに既にある場合は、列が更新されます。そうでない場合は、新しい列が追加されます。これはすべて正常に機能しています。SUB を追加しようとしているので、検索ボタンを使用してフィールドにデータを入力できるので、更新する前に既にそこにあるデータを確認できます。テキスト ボックスに入力することはできますが、ドロップダウン リストで一致する値を選択できません。フォームに入力するコードのセクションを次に示します。ドロップダウンをテキスト入力に変更すると、正常に入力されます。失敗している 2 つの行の左側に矢印を配置しました。さまざまなことを試しましたが、すべて失敗しているようです。うまくいけば、それはすべて理にかなっています。前もって感謝します!

  Sub SearchINV()
    Dim FSO, oExcel, oData, FoundCell, FindTag, FilePath, oWorkSheet

    FindTag = document.all.serial.value
    FilePath = "C:\file.xlsx"


    Set FSO = CreateObject("Scripting.FileSystemObject")
    Set oExcel = CreateObject("Excel.Application")
    Set oData = oExcel.Workbooks.Open(FilePath)
    oData.Worksheets("sheet1").Select
    Set FoundCell = oData.Worksheets("sheet1").Range("A1:A20000").Find(FindTag)
    oExcel.DisplayAlerts = False

    Set FoundCell = oData.Worksheets("sheet1").Range("A1:A20000").Find(FindTag)
    If Not FoundCell Is Nothing Then
      Dim r, c
      r = FoundCell.Row
      c = FoundCell.Column  
      Set oWorkSheet = oData.Worksheets("sheet1")
      document.getElementById("serial").value = FoundCell.Value
      document.getElementById("combination").value = oWorksheet.Cells(r, c+1).Value
      document.getElementById("last").value = oWorksheet.Cells(r, c+2).Value
      document.getElementById("first").value = oWorksheet.Cells(r, c+3).Value
      document.getElementById("department").value = oWorksheet.Cells(r, c+4).Value
--->  document.getElementById("floor").value = oWorksheet.Cells(r, c+5).Value
--->  document.getElementById("building").value = oWorksheet.Cells(r, c+6).Value
    Else
      MsgBox (FindTag & " not found")
    End If

    Set File_Path = nothing
    Set FindTag = nothing
    Set FoundCell = nothing
    oData.Close
    oExcel.Quit
    Set oWorkSheet = Nothing
    Set oData = Nothing
    Set oExcel = Nothing
    Set FSO = Nothing 
 End Sub
4

1 に答える 1