我有一个VBA脚本,可以将数据从“源”工作表复制并粘贴到“工作区”工作表。VBA会评估是否存在某些数据,并对布局进行调整,使其与“工作区”选项卡中的布局匹配。
问题:
insert命令添加一行单元格(仅限a-X列),以使源工作表中的列标题与工作区工作表上的列标题对齐。
很遗憾,这会更改工作表上所有公式的目标单元格。(即第21行的公式现在从第22行的单元格中提取)。太糟糕了。
首要问题:
VBA能在临时表中完成所有这些操作吗?完成后,然后粘贴到“工作区域”,这样就不会在“工作区”选项卡中完成任何操作?。。。还是其他快速解决方案?
当前代码:
我试图通过在SOURCE选项卡中插入行来解决这个公式问题。这很有效。。。但它在操纵SOURCE,我不想这么做。我想保持它不变。
其他背景:
“SOURCE”是一个动态报告。如果存在数据,则仅包括行和列。这一点无法更改。这是一个问题,因为“工作区域”选项卡包含所有可能的字段,并且每行都有许多公式。
简而言之,如果缺少“扣除”,我必须添加一个扣除行,然后将数据列转移到正确的列中
当前代码:
Sub Copy_And_Move_Columns_From_Pay_Reg_Source_to_Pay_Reg_Working_Area()
'
Sheets("Pay reg working area").Range("A:X").ClearContents
Sheets("Pay reg working area").Range("A:X").ClearFormats
If Sheets("WD Pay Reg Source").Range("a14") = "Deductions" Then
Sheets("WD Pay Reg Source").Range("A:X").Copy Sheets("Pay reg working area").Range("A:X")
Else
Sheets("WD Pay Reg Source").Range("A14:X14").Insert
Sheets("WD Pay Reg Source").Range("A:R").Copy Sheets("Pay reg working area").Range("A:R")
Sheets("WD Pay Reg Source").Range("S:V").Copy Sheets("Pay reg working area").Range("U:X")
Sheets("Pay reg working area").Range("S19").Value = "Deductions"
Sheets("Pay reg working area").Range("S20").Value = "Name"
Sheets("Pay reg working area").Range("T20").Value = "Value"
Sheets("Pay reg working area").Range("S19:T20").Font.Color = vbRed
Sheets("Pay reg working area").Range("S1").Value = "MAKE SURE Row 20 is the header row!!"
Sheets("Pay reg working area").Range("S1").Font.Color = vbRed
Sheets("Pay reg working area").Range("S1").Font.Size = 24
End If
End Sub