【发布时间】:2018-04-19 16:21:37
【问题描述】:
我在尝试在 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 周了,我已经接近了,但并不像我认为的那样动态。最终,我希望在切片器上选择某些内容时触发按钮的可见性。我已经尝试过更改和更新,但由于表本身的实际信息没有改变我尝试过的代码并没有奏效。我想复制/计数/粘贴引用表列名而不是行号和列号。 谢谢阅读!
【问题讨论】: