我在Excel中有一个表,其中列出了与某些数据相关联的名称。我希望能够创建新行(使用类似于某些内容的数据)并将它们分类到现有行中。
我真的不知道如何在Excel中编写VBA代码,也找不到任何根据数据插入行的示例。大多数示例都插入新的空白行来设置表的样式。
我已经有了这个插入输入值为user的新行:
Sub Test_Function()
Dim val As String
val = InputBox("Enter your name", "May I know your Name!")
'Inserting a Row at at Row 2
Range("A3").EntireRow.Insert
Range("A3").Formula = val
'
End Sub
更多信息:数据在此布局中: 名称 - 提供的钱W1 - 提供的钱W2 - 饮料W1 - 饮料W2 - 欠款总额
输入新名称时,该行需要像其他行一样复制公式。在表格的底部是另一行,其中包括“提供的钱”和“欠款”。 (我想因此我不能把它添加到最后一行,而是插入一个新的,不确定......)
答案 0 :(得分:1)
我不会插入新行,而是将插入的结果放在工作表的末尾:
lastRow = Range("A1").End(xlDown).Row + 1
Range("A" & lastRow) = data1
Range("B" & lastRow) = data2 'etc.
然后按您喜欢的键对整个工作表进行排序(此示例用于按A列降序排序A-C - 记录的宏):
Columns("A:C").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1:A" & lastRow), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A1:C" & lastRow)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With