如何解决VBA for Dynamic Vlookup和更新下一个可用列
vba的新手,但尝试优化数据输入过程。
我想执行以下步骤:
- 总是在工作表2(MSIMPORT)上输入新数据
- 工作表2上的数据在工作表1上的vlookup(NEEDBYDATES)
- 复制粘贴数据
- 在工作表2上输入新数据并复制到下一个可用列中(循环?)
我认为我的vlookup可以正常工作,我可以进入下一个列,我知道可以使用,但是我似乎无法在下一个“循环”中/输入新数据时更新它(新数据将覆盖先前的数据)
非常感谢您的帮助。
Sub vlookup_Update()
'variables
Dim NeedByDate As Worksheet,MSImport As Worksheet
Dim NeedByLastRow As Long,datalastrow As Long,i As Long
Dim datarng As Range
Set NeedByDate = ThisWorkbook.Worksheets("NeedByDates")
Set MSImport = ThisWorkbook.Worksheets("MSImport")
'find last row/columnn from ms project import
NeedByLastRow = NeedByDate.Range("a" & Rows.Count).End(xlUp).Row + 1
datalastrow = MSImport.Range("a" & Rows.Count).End(xlUp).Row
Set datarng = MSImport.Range("a2:d" & datalastrow)
'find next blank column on need by sheet
Dim cell As Range
Set cell = ActiveCell
If cell.Offset(0,1) = "" Then
cell.Offset(0,1).Select
Else
ActiveCell.End(xlToRight).Offset(0,1).Select
End If
For i = 2 To NeedByLastRow
On Error Resume Next
NeedByDate.Range(i).Value = Application.WorksheetFunction.vlookup( _
NeedByDate.Range("a" & i).Value,datarng,4,False)
Next i
Cells.Columns.AutoFit
Worksheets("NeedByDates").UsedRange
Worksheets("needbydates").UsedRange.Select
Worksheets("needbydates").UsedRange.copypaste
End Sub
TIA
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。