我在尝试引用countif语句中的表列名时遇到了问题。我有一个包含多个列名的表TBL_Client1
。我有三个切片器可以选择将我的表缩小到1行。我使用表格中的第一列Visible
来确定何时将表格选择为一行。我目前在按钮上使用此代码来触发另一个按钮可见性。它工作,但我有的表是动态的,可以使用越来越多的行。如何引用表列名而不是a1:a1500
Private Sub CommandButton1_Click()
Dim n As Integer
n = Application.WorksheetFunction.CountIf(Range("a1:a1500"), "1")
If (n) = 1 Then
Sheets("clientlist").CommandButton2.Visible = True
Else
Sheets("clientlist").CommandButton2.Visible = False
End If
我使用它来显示按钮CommandButton2
。 CommandButton2
一旦可见执行复制功能再一次,我无法弄清楚如何通过名称引用表列而不是引用行号。以下是我的下一个宏:
Sub update()
A = Worksheets("clientlist").Cells(Rows.Count, 4).End(xlUp).Row
For i = 5 To A
If Worksheets("clientlist").Cells(i, 1).Value = "1" Then
Worksheets("clientlist").Cells(i, 2).Copy
b = Worksheets("contactlog").Cells(Rows.Count, 2).End(xlUp).Row
Worksheets("clientlist").Paste
Destination:=Worksheets("contactlog").Cells(b + 1, 2)
Worksheets("clientlist").Cells(i, 3).Copy
Worksheets("contactlog").Cells(b + 1, 3).PasteSpecial
Paste:=xlPasteValues
Application.CutCopyMode = False
Worksheets("clientlist").Cells(10, 11).Copy
Worksheets("contactlog").Cells(b + 1, 4).PasteSpecial
Paste:=xlPasteValues
Application.CutCopyMode = False
Worksheets("clientlist").Cells(i, 11).Copy
Worksheets("clientlist").Paste
Destination:=Worksheets("contactlog").Cells(b + 1, 7)
Worksheets("clientlist").Cells(i, 12).Copy
Worksheets("clientlist").Paste
Destination:=Worksheets("contactlog").Cells(b + 1, 6)
Worksheets("clientlist").Cells(i, 13).Copy
Worksheets("clientlist").Paste
Destination:=Worksheets("contactlog").Cells(b + 1, 5)
Worksheets("clientlist").Cells(3, 11).Copy
Worksheets("clientlist").Paste
Destination:=Worksheets("contactlog").Cells(b + 1, 8)
c = Worksheets("deals").Cells(Rows.Count, 2).End(xlUp).Row
Worksheets("clientlist").Cells(10, 11).Copy
Worksheets("deals").Cells(c + 1, 3).PasteSpecial Paste:=xlPasteValues
最后,我只使用2个按钮和可见性,因为我无法弄清楚如何让宏连续运行。我现在已经在网上(特别是StackOverflow)搜索了大约2个星期,而且我已经接近了,但是并不像我想象的那样动态。最终,我希望在切片机上选择某些东西时,可以触发按钮的可见性。我已经尝试过更改和更新,但由于表格本身的实际信息并没有改变代码我已经尝试过没有用过。我想复制/标识/粘贴引用表列名而不是行号和列号。 谢谢阅读!
答案 0 :(得分:1)
使用Range("TBL_Client1[your-column-name]")
这应该可以解决问题。