2015-09-13 134 views
0

我有一個優先級排序的工作列表,其中包含由相鄰數值數據計算得出的多列中的受保護公式。我不想勾選允許用戶插入和刪除行的複選框,以保持紙張大小。重新排序行單元格

我想要做的是有兩個命令按鈕,一個用於up,一個用於down,它將相應地向上或向下移動未受保護的單元格。 (即改變優先級),而不刪除上面或下面的數據。 (有效地交換行中的數據)。

我在考慮「向上移動」按鈕,在上面插入範圍2行,將數據複製到這些單元格(基於活動單元格或選定單元格),然後刪除原始範圍的單元格,移動下面的單元格向上。類似於「下移」按鈕。

我似乎無法找到我在找什麼,因爲我不相信我可以使用插入行,因爲鎖定列和需要複製公式。幫助讚賞,我有點出於我的深度。

想想看,也許按鈕可能會關閉保護,複製,插入2行上方或下方,粘貼,deleteline(原始),然後再回到保護?

+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

+1

我正在考慮這些公式,但認爲使用'.FormulaR1C1'會更好,因爲確切的公式字符串是相同的。字面上轉移的xlA1公式引用可能會變得困惑。 – Jeeped

+0

@Jeeped是的,你是對的 –

相關問題