2017-06-06 7 views
1

ユーザーが入力するセルの右側に「合格/不合格」基準を持つドロップダウンリストを挿入しようとしています。細胞は、上から下に順番に配置されます。私がこれまで持っていたものは次の通りです:コードでコンボボックスを挿入する

Sub ComboBoxPassFail()  
    Dim i As Integer 
    Dim rng As Range 

    i = 4 

    For Each c In Worksheets("Inspection Report").Range("A4", Range("A4").End(xlDown)).Cells 
     If c.Value <> "" Then 

     Set rng = c.Offset(0, 14) 

     Top = rng.Top 
     Left = rng.Left 

     ActiveSheet.OLEObjects.Add(classtype:="forms.combobox.1", Left:=Left, Top:=Top, Width:=8, Height:=15).Insert 

     i = i + 1 

     End If 
    Next c 

    i = 4 

End Sub 

私の主な問題はコンボボックスを扱うことに由来します。

答えて

0

物事のカップル

  1. topleft VBAでの予約語です。変数として使用することはできません
  2. Excelの行を使用しているため、行はで、Integerではないと宣言しています。私はiコードの使用が表示されません。
  3. .Insertは有効な文ではありません。

これはあなたの試みですか?

Sub ComboBoxPassFail() 
    Dim rng As Range, c As Range 
    Dim rngTop As Double, rngLeft As Double 

    For Each c In Worksheets("Inspection Report").Range("A4", Range("A4").End(xlDown)).Cells 
     If c.Value <> "" Then 
      Set rng = c.Offset(0, 14) 
      rngTop = rng.Top 
      rngLeft = rng.Left 

      '~~> You may want to decide on a more appropriate width value? :) 
      ActiveSheet.OLEObjects.Add classtype:="forms.combobox.1", _ 
             Left:=rngLeft, Top:=rngTop, _ 
             Width:=8, Height:=15 
     End If 
    Next c 
End Sub 
+0

幅に関しては、ピクセルではなくポイントで行くと思っていました。私はちょうど列の幅を確認し、ポイントの値を取った。それが修正されました。左と上については、私はここで質問を提出した後にそれらを修正しました。私はそれをする別の方法のためにそこにあることを意図されていたと私はそれを取り出して忘れてしまった。いずれにせよ、私は今それらを追加することができました。 "PASS"、 "FAIL"基準を挿入する際に動作します。ありがとう! –

関連する問題