重新sorting行单元格

我有一个优先级的工作列表与保护公式从几个相邻的数值数据计算列。 我不想勾选允许用户插入和删除行的checkbox,以保持纸张大小。

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

我正在考虑“上移”button,在上面插入一个范围2行,将数据复制到这些单元格(基于活动单元格或所选单元格),然后删除原始范围的单元格,将单元格向下移动。 类似于“下移”button。

我似乎无法find我在找什么,因为我不相信我可以使用insertline由于locking的列和需要复制的公式。 帮助赞赏,我有点出于我的深度。

只是想,也许button可以关掉保护,复制,插入上面或下面的2行,粘贴,deleteline(原始),然后再打开保护?

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

 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 

感谢Jeepedbuild议。Form1R1C1而不是.Formula