我正在使用5列可变范围。第一列只包含从1到列表末尾的升序数字。第五栏包含正面或负面的利润。
我正在尝试创建一个循环,该循环将通过“利润”列并确定每个单元格值是否为正数。如果是正数,我希望它创建一个放在“数字”列中相应单元格上的按钮。我希望它能为每一行带来积极的“利润”价值。
单击该按钮时,我希望它创建一个名为“投资(相应数字来自'数字'列)概述”的新工作表[即“投资2概述”]。然后我希望它返回到初始工作表并将值复制到相应的“利润”单元格中并将其粘贴到新工作表的表格中,然后使用该表格创建图表。
我是VBA的新手,但做了非常彻底的研究。我发现了一个论坛帖子,我认为这是关于我想做什么的,但我无法真正理解它。该网站被链接为该帖子的解决方案: http://navpadexcel.blogspot.com/2006/11/httpwwwcpearsoncomexcelvbehtm.html
无论如何,这是我想出的。不起作用,但希望能够了解我正在尝试做什么:
For Each c In ActiveSheet.Range("Profits").Cells
If c.Value > 0 Then
Dim t As Range
Application.ScreenUpdating = False
Set t = Range(c).Offset(-4, 0)
With ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height).Select
Selection.OnAction
Sheets.Add.Name = "Investment" & c.Offset(-4, 0).Value & "Overview"
Worksheets("Profits").Activate
c.Select
Selection.Copy
Worksheets("Investment" & c.Offset(-4, 0).Value & "Overview").Activate
Range("N22").Select
ActiveCell.PasteSpecial
Range("N21").Value = "=N22 - Profits!K20"
Range("N23").Value = "=N22 + Profits!K20"
Range("M20").Value = "x"
Range("N20").Value = "y"
Range("M21").Value = "1"
Range("M22").Value = "1"
Range("M23").Value = "1"
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xl3DColumnStacked
ActiveChart.SetSourceData Source:=Range("$M$20:$N$23")
答案 0 :(得分:0)
不是一个完整的答案,但我在编码中看不到任何明显的东西,但上次我尝试使用创建按钮时,我为单击按钮时想要做的事情创建了一个单独的宏,这样:
ActiveSheet.Buttons.Add Range("A2").Left, Range("A2").Top, Range("B2").Width, Range("A3").Height
ActiveSheet.Buttons.Select
ActiveSheet.Buttons.Caption = "Hide Sheet"
Selection.OnAction = "HideMeNow"
然后有一个名为HideMeNow的单独子
运行它时你的代码是做什么的?
-Cr1kk0
答案 1 :(得分:0)
谢谢Cr1kk0的答案!它指出了我正确的方向,我能够弄明白。
这是我用来循环浏览“Potential_Profits”范围的代码,对于每个正值,创建一个自动拟合到左边4列相应单元格的按钮:
For Each c In ActiveSheet.Range("Potential_Profits").Cells
If c.Value > 0 Then
Dim t As Range
Dim btn As Button
c.Select
Set t = ActiveCell.Offset(0, -4)
Set btn = ActiveSheet.Buttons.Add(t.Left, t.Top, t.Width, t.Height)
With btn
.OnAction = "buttonMacro"
.Caption = c.Offset(0, -4).Value
.Name = "btn" & c.Offset(0, -4).Value
End With
End If
Next
然后我制作了一个名为“buttonMacro”的独立宏(真正让我的创作自由)与按钮相关联。宏选择按钮位于顶部的单元格,将变量分配给“Potential_Profits”范围内的原始单元格,并根据按钮所在的行号创建并命名新工作表。
Sub buttonMacro()
Dim b As Object
Dim rowNumber As Range
Dim buttonCell As Range
Set b = ActiveSheet.Buttons(Application.Caller)
With b.TopLeftCell.Select
Set rowNumber = ActiveCell
Set buttonCell = ActiveCell.Offset(0, 4)
Sheets.Add.Name = "Sheet " & rowNumber.Value
End With
End Sub