使用vlookup复制数据和if

时间:2017-01-24 16:24:41

标签: excel vba excel-vba

我有一个很好的代码,但我希望进行一些修改

单元格B5在Sheet&#34; feb&#34;中的价值.post(如果范围内的任何单元格为非空白​​且If sheets("Feb").Range("I5:AK81)<>""不等于&#34; TRF。&#34;表示范围内的任何单元格不等于&#34; TRF。&#34;然后Sheets("Jan").Range("I5:AM81")单元格B5表格&#34; Jan&#34;范围VLookup并复制并粘贴到单格B5单元格&#34; 2月& #34;

并转到范围B5中的最后一个空白列:表格feb的B81以及表格的第O列中的任何日期(&#34; master&#34;)。范​​围(&#34; H7:q200&#34; )只在当前年份的当月内下降,然后在该范围内复制适当的单元格b并粘贴在最后一个空单元格中#2; 2月&#34;范围B5:B81等等

以下是代码

Sheets("master").Range("H7:Q200"),1,0)

1 个答案:

答案 0 :(得分:0)

If AND(criteria1,critieria2) then

这应该允许你第二个标准,而不需要嵌套另一个if语句。

很难按照你要去的方向行事,所以如果这是错误的话请纠正我。并没有得到&#34;等等#34;其中的一部分,但我们可以尝试分解其中的一部分:

.1)然后将VLookup单元格B5放入表格&#34; Jan&#34;在范围表(&#34; master&#34;)。范​​围(&#34; H7:Q200&#34;),1,0)

'You've got this.  I would recommend index/match 
'using application and worksheet function commands.

.2)将其复制并粘贴到工作表的单元格B5中#2; 2月&#34;。

With Sheets("Feb").Range("B5").PasteSpecial xlPasteValues

.3)转到范围B5中的最后一个空白列:表单的B81

Dim LR as Long 'LR is last row
LR = Cells(Sheets("Feb").Rows.Count, 1).End(xlUp).Row

.4)如果表格的第O列中的任何日期(&#34; master&#34;)。范​​围(&#34; H7:q200&#34;)仅在当前当月的当月内

'Assuming this sheet based... Assuming H is the date column
If Sheets("master").Range("H7:H200").Value = "2" Then
然后

.4a)复制

范围内的适当单元格b
'use index/match with output being Column(2)/B
WorksheetFunction.Index(rangeB,WorksheetFunction.Match(reference,rangeH)).Copy

.4b)粘贴在最后一个空单元格中#2; 2月&#34;范围B5:B81

Sheets("Feb").Cells(LR+1,2).PasteSpecial xlPasteValues

.5)等等

这有望为您提供一个开始。如果可以的话,只要在程序上考虑每一行。