0

Excel で複数の動的ドロップボックスを実装するのに助けが必要です:

  • シート 1 には塗りつぶされた表があります
  • シート 2 には、同じ列ヘッダーを持つ空のテーブルがあります
  • シート 2 の表は、最後の列を除いてユーザーによって入力されます
  • 最後の列のシート 2 には、各行にドロップボックスがあるはずです。このドロップボックスには、テーブル 1 の同じ列からの値の選択が含まれている必要があります。選択では、ドロップボックスが存在するテーブル 2 の行に既に入力されているフィールドに一致するテーブル 1 の行のみを考慮する必要があります。以下の例を参照してください。

全体として、追加のユーザー操作を必要とせず、ドロップボックスの値に加えて任意の値を挿入できるようにする必要があります。


表1

ブランド | CPU | モデル
ブランド1 | cpu1| モデル
X ブランド 1 | cpu1| モデル
Y ブランド 1 | cpu2| モデル
Zブランド2 | cpu2| モデルHブランド2 | cpu2| モデルK

表 2

ブランド | CPU | モデル
ブランド1 | cpu1| [ドロップボックス1]
ブランド2 | cpu2| [ドロップボックス2]

説明

[DROPBOX1] には modelX と modelY が含まれている必要があります [DROPBOX2] には modelH と modelK が含まれている必要が
あります


専用テーブル内の名前付き範囲を使用して、そのようなドロップボックスを1 つ作成することができましたが、それだけです。任意の行数に対して同じシステムを使用することはできません。 すべてがAccessを叫びますが、実装の詳細は上から来たので、Excelです(管理者に感謝します)。

ありがとう。

4

2 に答える 2

0

最初の EU MVP であるBill Manville氏から Microsoft フォーラムでサポートを受けることができました。
これは問題を解決したマクロです:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Dim iCol as Integer
  Dim rTable1 As Range
  If Target.Cells.Count<>1 Then Exit Sub
  Set rTable1=ThisWorkbook.Sheets("Sheet1").Range("A1").CurrentRegion
  With Me.Range("A1").CurrentRegion
    If Target.Column<>.Columns.Count Then Exit Sub
    rTable1.AutoFilter
    For iCol = 1 To .Columns.Count-1
       rTable1.AutoFilter iCol, Me.Cells(Target.Row, iCol)
    Next
    If rTable1.Columns(1).SpecialCells(xlVisible).Count>1 Then
      rTable1.Columns(.Columns.Count).Offset(1).Resize(rTable1.Rows.Count-1).SpecialCells(xlVisible).Name = "ValidationList"
    Else
      MsgBox "The combination in this row is not matched"
    End If
    rTable1.AutoFilter
  End With
End Sub

彼はまた、実用的な例を提供してくれてとても親切でした。データ検証では、複数のセクションに分割された名前付き範囲の最初のセクションのみが考慮される
ため、これらが機能するには、ソース テーブルを順序付けする必要があります。

于 2013-06-18T12:20:19.480 に答える
0

あなたをフォローするのに少し問題がありますが、これを試すための簡単なセットアップは、[データ] タブのデータ検証を使用することです。

  1. [データ] タブから [データ検証] を選択します
  2. データ検証を選択
  3. 許可:「リスト」から選択
  4. ソースの下には、次の 2 つの方法があります。ドロップリストで表示したい列範囲を強調表示できます。列/行の名前がある左上の列範囲を強調表示し、強調表示して名前を変更し、その名前をソースとして使用できます。

    通常、追加のタブを作成し、それを非表示/保護してから、そこからドロップダウン シートを作成します。

于 2013-06-14T13:10:07.730 に答える