簡體   English   中英

使用VBA將列表(表格)動態添加到Excel中的特定單元格(列)

[英]Dynamically add a list (table) to a specific cell (column) in Excel using VBA

我試圖讓 Excel 中的 L 列在 Excel 中使用值(現在是表?)填充下拉列表,這是我的代碼。 我手動創建了一個名為 Table1 的表,其中包含一些虛擬值。 我可以對表中的值進行硬編碼,所以這不是問題。 我只需要運行一些條件,對於一些特定的行,我需要在 Excel 的 L 列添加一個下拉列表。 任何幫助,將不勝感激。 另外,是否有一種簡單的方法可以為 Excel 中的特定行着色?

Sub button_click()
Set i = Sheets("Sheet1")
Set e = Sheets("Sheet2")
arrColumnNames = i.ListObjects("Table1")

Dim d
Dim j
d = 1
j = 13

Do Until IsEmpty(i.Range("K" & j))

If i.Range("K" & j) = "Y" Then
d = d + 1
e.Rows(d).Columns("A:E").Value = i.Rows(j).Columns("A:E").Value
i.Rows(j).Columns("L") = arrColumnNames
End If
j = j + 1
Loop
End Sub

我想我明白你在追求什么。 這將創建一個驗證列表並使用您選擇的值填充列表。

Dim myRng As String

myRngr = Range("A1:A10").Address

With Range("B2").Validation
    .Delete
    .Add Type:=xlValidateList, _
      AlertStyle:=xlValidAlertStop, _
      Operator:=xlBetween, Formula1:="=" & myRngr & ""
End With

要修改您需要的源數據的范圍,您只需要更改這一行,

myRngr = Range("A1:A10").Address

然后,您可以使用循環遍歷L column ,如果滿足條件,則添加驗證列表。

希望有幫助。

這是將下拉列表添加到表格的另一種方法。

Public Sub AddDropdownListColumnToTable()

    Dim sht As Worksheet
    Dim colCount As Long

    Set sht = ThisWorkbook.Worksheets("MySheetName")

    colCount = sht.ListObjects(1).ListColumns.Count + 1

    sht.ListObjects(1).ListColumns.Add (colCount)
    sht.ListObjects(1).ListColumns(colCount).Name = "Criteria"
    With sht.ListObjects(1).ListColumns(colCount).DataBodyRange.Validation
        .Delete
        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
        xlBetween, Formula1:="Item One, Item Two, Item Three, Item Four"
        .IgnoreBlank = True
        .InCellDropdown = True
        .InputTitle = ""
        .ErrorTitle = ""
        .InputMessage = ""
        .ErrorMessage = ""
        .ShowInput = True
        .ShowError = True
    End With

End Sub

關於給一行着色可以使用Interior.ColorIndex。

Sub colorIt()
    Dim rng As Range
    Set rng = ThisWorkbook.ActiveSheet.Rows(2)
    rng.Interior.ColorIndex = 6
End Sub

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM