我的模型从一张纸上取两个数字,将平均值添加到已定义列的最后一个单元格中的另一张纸上。我遇到的问题是,当我插入一个新列时,引用会被错过并且我正在尝试使用一个宏来获取平均值2.在第二个工作表上查找特定列3.粘贴最后一个单元格的平均值。
请帮我解决这个问题。我一直试图让我的头围很长时间。
谢谢。
这是我的代码:它现在基本上做的是找到最后一个空行,我必须在列中输入一个数字来引用一个单元格。我想要的是使列引用动态,所以当我插入一个新列时,我不必更改宏。
Private Sub CommandButton1_Click()
Dim emptyRow As Long, Answer As Double, result As String
Application.ScreenUpdating = False
Sheet1.Activate
RowCount = Worksheets("Sheet1").Range("A1").CurrentRegion.Rows.Count
With Sheets("Sheet1").Range("A1")
.Offset(1, 2).Value = Me.TextBox1.Value
.Offset(1, 3).Value = Me.TextBox2.Value
.Offset(2, 2).Value = Me.TextBox3.Value
.Offset(2, 3).Value = Me.TextBox4.Value
.Offset(3, 2).Value = Me.TextBox5.Value
.Offset(3, 3).Value = Me.TextBox6.Value
.Offset(4, 2).Value = Me.TextBox7.Value
.Offset(4, 3).Value = Me.TextBox8.Value
End With
Sheet2.Activate
emptyRow = Sheet2.Range("A" & Rows.Count).End(xlUp).Row + 1
Answer = Application.WorksheetFunction.Average(Range("C2:D2"))
Sheets("Sheet2").Cells(emptyRow, 1).Value = Answer
Answer = Application.WorksheetFunction.Average(Range("C3:D3"))
Sheets("Sheet2").Cells(emptyRow, 2).Value = Answer
Answer = Application.WorksheetFunction.Average(Range("C4:D4"))
Sheets("Sheet2").Cells(emptyRow, 3).Value = Answer
Answer = Application.WorksheetFunction.Average(Range("C5:D5"))
Sheets("Sheet2").Cells(emptyRow, 4).Value = Answer
End Sub
答案 0 :(得分:0)
一种方法是为列分配名称:
Sub demo()
Range("B:B").Cells.Name = "expenses"
End Sub
如果在工作表的开头插入了列,则会调整命名范围。
修改#1:强>
在分配名称之后,以下是填充费用的第一个空单元格(位于列底部)的示例列值 123
Sub TheNextStep()
Dim expCol As Long, FirstEmptyRow As Long
expCol = Range("expenses").Column
FirstEmptyRow = Cells(Rows.Count, expCol).End(xlUp).Row + 1
Cells(FirstEmptyRow, expCol).Value = 123
End Sub