重新排序行单元

时间:2015-09-13 02:04:12

标签: excel vba excel-vba

我有一个优先的作业列表,其中包含从相邻数值数据计算的多个列中的受保护公式。我不想勾选允许用户插入和删除行的复选框,以便保持纸张尺寸。

我要做的是有两个命令按钮,一个用于up,一个用于down,这将相应地向上或向下移动未受保护的单元格。 (即更改优先级。)而不删除上面或下面的数据。 (有效地交换行中的数据)。

我正在思考"提升"按钮,插入上面2行的范围,将数据复制到这些单元格(基于活动单元格或选定的单元格),然后删除原始范围的单元格,将单元格向下移动。类似于"向下移动"按钮。

我似乎无法找到我要找的东西,因为我不相信我可以使用插入线,因为锁定的列也需要复制公式。帮助赞赏,我有点超出我的深度。

想一想,按钮可能会关闭保护,复制,插入2行上方或下方,粘贴,删除行(原始),然后重新启用保护?

1 个答案:

答案 0 :(得分:2)

您可以使用临时变量交换单元格公式/值。

Sub SwapCellFormulas(c1 as Range, c2 as Range)
    Dim temp as String: temp = c1.FormulaR1C1
    c1.FormulaR1C1 = c2.FormulaR1C1
    c2.FormulaR1C1 = temp
End Sub

Sub SwapCellValues(c1 as Range, c2 as Range)
    Dim temp: temp = c1.Value
    c1.Value = c2.Value
    c2.Value = temp
End Sub

感谢Jeeped建议.FormulaR1C1而不是.Formula