嗨,我收到“运行时错误1004-无法获取Worksheet类的Buttons属性”,它来自底部Set b = Worksheets("Form").Buttons(Application.Caller) 'references button
附近的行。
我基本上是在尝试将数据复制到数据透视表的完全展开字段旁边的动态按钮旁边的列中。我的按钮看起来不错,我只需要它们在单击特定按钮时将相邻单元格中的数据复制到另一个工作表中的列表中即可。
Sub buttonGenerator()
Dim btn As Button
Application.ScreenUpdating = False
ActiveSheet.Buttons.Delete
Dim t As Range
Dim size As Long
size = Worksheets("Form").PivotTables("Pivottable1").TableRange2.Rows.Count 'returns number of rows in expanding pivot table
For i = 2 To size Step 1 'cycles through from row 2 to last row of pivot table
If Not IsEmpty(Worksheets("Form").Range(Cells(i, 4), Cells(i, 4))) Then 'only shows button if last col of pivot table has data
Set t = Worksheets("Form").Range(Cells(i, 5), Cells(i, 5))
Set btn = Worksheets("Form").Buttons.Add(t.Left, t.Top, t.Width, t.Height)
With btn
.OnAction = "btnS" 'call btnS subroutine
.Caption = "Button" & i 'button label
.Name = "Button" & i 'button name
End With
End If
Next i
Application.ScreenUpdating = False
End Sub
Public Sub btnS()
Dim b As Object
Dim r As Integer
Dim c As Integer
Set b = Worksheets("Form").Buttons(Application.Caller) 'references button
With b.TopLeftCell 'returns row and col of button pushed
r = .row
c = .col
End With
origin = Range(r, c)
dest = Worksheets("Form Output").Range(Cells(1, 1))
dest.Value = origin.Value
End Sub
答案 0 :(得分:0)
添加以下行:
Option Explicit ' :)
Dim origin As Range
Dim dest As Range
更正这些行:
c = .colUMN
...
SET origin = Worksheets("Form").Cells(r, c)
SET dest = Worksheets("Form Output").Cells(1, 1)
一些建议:您可以使用.Cells(i, 4)
代替.Range(Cells(i, 4), Cells(i, 4)))