我決定通過例子問這個問題。我試圖解釋整個項目,但如果你還沒有在同一個項目上工作,那麼我們就去了。VBA找到excel中列間的距離
作爲我正在編寫的代碼的用戶,您需要確定您希望程序實際獲取哪些列以及將所有計算寫入哪裏。總共有9個用戶可以玩,但我會專注於前四個,所以它不會太複雜。
前兩個是我的程序需要執行計算的列(稍後解釋),它是整個項目運行的基礎。我們稱它們爲Data_Before和Data_After。
接下來的兩列是根據Data_Before和Data_After中的信息進行的計算。這兩列是差異和百分比。像標題所示,Diff是Data_After - Data_Before,Percent是Diff/Data_Before。
截至目前,列必須緊挨着彼此。因此,如果Data_Before在列「A」中,那麼Data_After必須出現在「B」中,差異在「C」和百分比在「D」中。這是因爲我的計算來自記錄宏功能。用於填充在DIFF和百分比細胞中的代碼是下面
' Diff column
ActiveCell.FormulaR1C1 = "=RC[-1]-RC[-2]"
' Percent column
ActiveCell.FormulaR1C1 = "=RC[-1]/RC[-3]"
對不起在代碼中,「差別列」和「百分比列」的怪異着色是註釋。無論如何,在這裏我們有FormulaR1C1,這使得程序不靈活。問題是,如何找到差異列和Data_Before或Data_After列之間的距離,以便用戶可以在列「A」中具有Data_Before,在列「B」中具有Data_After,但是可以在任何他們想要的位置使用Diff和Percent列?
對不起,問題的長度。
比方說,用戶想要X和Y列中有Diff和Percent。那些地點將如何傳達給該計劃?換句話說:就像現在寫的那樣,你是如何確定列C和D是正確的輸出列的? – 2011-02-25 23:06:06
其中包含所有代碼的excel文件與獲取數據的文件不同。對不起,我很難解釋清楚,但在代碼文件中,用戶輸入他們想要的所有內容。例如:用戶可能會說「我想讓Data_Before在F列,Data_After在G列等代碼:Dim Data_Before As String ... Set s1excel = ThisWorkbook.ActiveSheet ... Data_Before = Range(「B2」)。Text。The用戶會在計算文件中的B2單元格中輸入所需的列號 – 2011-02-25 23:12:16