复制 blank/empty 单元格并按列 header 名称粘贴特殊添加到整列
Copy blank/empty cell and pastespecial add to entire column by column header name
我正在尝试编写一个 MACRO 来执行以下操作(作为大型 MACRO 项目的一小部分):
(考虑到每次生成报告时我都会有不同数量的 COLUMNS 和 ROWS,因此,每次需要操作的列都会不同。这就是为什么我需要使用 Header 名称.)
- Select 现有报告数据中的空白单元格
- 复制单元格
- SELECT 所有数据,header 除外,列中 header 名称 = "PROC#/REV CODE"
- PASTE SPECIAL ADD(这一步是将两组不同的数据变成相同的(EQUAL IF)可比数据类型。
- 为 header 名称 = "FEE RATE".
的列重复整个过程
记录的 MACRO 看起来像这样(需要用未知的 EMPTY 单元格位置替换 "RANGE("K2")"。需要将 "Range("G2:G4786")" 替换为列 Header NAME):
Sub CopySpacePasteAdd()
Range("K2").Select
Selection.Copy
Range("G2").Select
A
Range("G2:G4786").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
非常感谢您的帮助!
编辑;这段代码不是那么漂亮,但它会将文本转换为低于特定 headers.
范围内的数字
Dim lRow As Long
lRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Columns.Count
If Cells(1, i) = "PROC#/REV CODE" Then
With Cells(1, i).Offset(1).Resize(lRow)
.NumberFormat = "General"
.Value = .Value
End With
ElseIf Cells(1, i) = "FEE RATE" Then
With Cells(1, i).Offset(1).Resize(lRow)
.NumberFormat = "General"
.Value = .Value
End With
Exit For
End If
Next
我正在尝试编写一个 MACRO 来执行以下操作(作为大型 MACRO 项目的一小部分):
(考虑到每次生成报告时我都会有不同数量的 COLUMNS 和 ROWS,因此,每次需要操作的列都会不同。这就是为什么我需要使用 Header 名称.)
- Select 现有报告数据中的空白单元格
- 复制单元格
- SELECT 所有数据,header 除外,列中 header 名称 = "PROC#/REV CODE"
- PASTE SPECIAL ADD(这一步是将两组不同的数据变成相同的(EQUAL IF)可比数据类型。
- 为 header 名称 = "FEE RATE". 的列重复整个过程
记录的 MACRO 看起来像这样(需要用未知的 EMPTY 单元格位置替换 "RANGE("K2")"。需要将 "Range("G2:G4786")" 替换为列 Header NAME):
Sub CopySpacePasteAdd()
Range("K2").Select
Selection.Copy
Range("G2").Select
A
Range("G2:G4786").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
非常感谢您的帮助!
编辑;这段代码不是那么漂亮,但它会将文本转换为低于特定 headers.
范围内的数字Dim lRow As Long
lRow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To Columns.Count
If Cells(1, i) = "PROC#/REV CODE" Then
With Cells(1, i).Offset(1).Resize(lRow)
.NumberFormat = "General"
.Value = .Value
End With
ElseIf Cells(1, i) = "FEE RATE" Then
With Cells(1, i).Offset(1).Resize(lRow)
.NumberFormat = "General"
.Value = .Value
End With
Exit For
End If
Next