2017-06-22 139 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