我要做的是在 Excel 中将金额从一行更新到另一行。它们没有任何组合键,但它们处于模式中。始终从项目组开始,大约 3-7 行之后是项目组的结尾。我想从项目组的末尾获取金额并更新项目组中的行,但始终是项目组,然后是项目组的末尾。
如果更容易使用或访问,我可以上传到 SQL。
这就是问题。
所以基本上,如果您还没有开发人员选项卡,您需要转到选项>自定义功能区>单击“开发人员”
然后单击开发人员选项卡上的 VB 编辑器并在项目区域中单击鼠标右键并选择“插入新模块”。在新模块中插入此代码并保存。
为了使其易于运行,您可以转到开发人员选项卡 > 插入 > 按钮。然后右键单击该按钮并将其分配给您刚刚创建的此宏,以便每次您想要更新项目组值时都可以单击该按钮。如果按钮不允许您“分配宏”,那么您可能插入了错误类型的按钮。
Option Explicit
Sub UpdateValues()
Dim itemCol As Long
Dim lastRow As Long
Dim row As Long
Dim lastEnd As Double: lastEnd = 0.0
' set reference to your worksheet
With ThisWorkbook.Worksheets("your sheet name")
' set column with title 'Item_Type' in Row 1
For row = 1 To 20
If Trim(CStr(.Cells(1, i).Value)) = "Item_Type" Then itemCol = i
Next
' find last row of Item_Type column
lastRow = .Cells(.Rows.Count, itemCol).End(xlUp).Row
' loop backwards thru rows
For row = lastRow To 1 Step -1
' if cell contains word 'end'
If InStr(LCase(CStr(.Cells(row, itemCol).Value)), "end") Then
' set our group value
lastEnd = .Cells(row, itemCol+1).Value
' if lowercase(cell) = 'item group'
ElseIf LCase(CStr(.Cells(row, itemCol).Value)) = "item group" Then
' put end value in the cell
.Cells(row, itemCol+1).Value = lastEnd
End If
Next row
End With
End Sub