2017-06-22 206 views
0

我有兩個工作表Sheet1和Sheet2。 Sheet1中的J列包含項目名稱。我希望sheet2中的poject的結束日期。爲此,將公式轉換爲VBA

  1. 我正在尋找工作表Sheet1的Sheet1的項目名稱,如果他們是相同的,然後我將日期複製到Sheet1列w中。
  2. 有一次,我已經複製,然後我比較列u中的日期與列w,並說如果它是好的或不好的。

我已經以公式的形式制定了上述條件。

但我想讓他們在VBA中。任何人都可以建議我怎樣才能在VBA中構建我的公式。

列W = IFERROR(VLOOKUP(J2; Sheet2的$ A:$ L; 7; 0); 「」)

列X = IF($ W2> $ U2; 0; 1)

列Y = IF($ W2 < = $ U2; 0; 1)

我不會喜歡使用記錄的宏。

+1

只需使用內置的VBA方法或函數。您的列X和Y公式非常簡單,依賴於運算符和布爾比較;您的查找可以通過多種方式完成。 Range.Find方法是一個。如果您有大量數據,那麼在VBA陣列中進行工作可能會更有效。如果遇到問題,請發佈代碼和示例數據,並解決具體問題。 –

+0

@RonRosenfeld謝謝你的線索,我得到了我的輸出:) – Mikz

+0

@RonRosenfeld一個問題,因爲我只是在尋找匹配值,許多行都是空的。你能告訴我如何用代碼隱藏它們嗎? – Mikz

回答

0

最簡單的方法是在激活並接受公式時記錄宏。在VBA代碼中我可以找到正確的解決方案。 例如:

IF($ W2> $ U2; 0; 1)用於細胞H3

Range("H3").Select 
ActiveCell.FormulaR1C1 = "=IF(RC23>RC21,0,1)" 
+0

但記錄宏並使用它,將以某種方式顯示公式欄中的公式。我不想那樣。 – Mikz

0
Range("H3").Formula = "=IF(RC23>RC21,0,1)" 
+0

是否可以使用Frame,而不使用相同的公式 – Mikz