2014-02-12 113 views
-3

需要用另一个表格中的另一个值替换一个Excel值。有些值不需要替换,所以我需要一个公式或代码来识别它。两张纸的顺序不一样。例如。 列“司通Alt_rep”(6)是更新后的值,以取代在(200个+行) 片2“司通Alt_rep”(14000个+行)需要用另一个表格中的另一个值替换一个Excel值

+1

欢迎来到SO!有关发布问题,请参阅[我们的指南](http://stackoverflow.com/help/on-topic)。具体而言,“询问代码的问题必须证明对所解决问题的最小理解。包括尝试的解决方案,为什么他们不工作,以及预期的结果。“ – ARich

回答

0

我可以想象这将是.Find.Offset复制数据从另一个片电流片:

Dim t_val as Variant 

t_val = other_sheet.Range("A:A").Find(What:="value to lookup", LookIn:=xlValues, _ 
     LookAt:=xlWhole, MatchCase:=True).Offset(0, 2) 

current_sheet.Range("G:G").Find(What:="value to lookup", LookIn:=xlValues, _ 
     LookAt:=xlWhole, MatchCase:=True).Offset(0, 6) = t_val 

我不得不使用变异为不同的宏,它可以在不认为做......不过这是我认为应该工作?除非不需要抵消,否则偏移需要与数据所在的位置重合。在这种情况下,你可以把它拿出来,然后你需要的就是:

other_sheet.Range("A:A").Find(What:="value to lookup", LookIn:=xlValues, _ 
     LookAt:=xlWhole, MatchCase:=True).copy _ 
     destination:= current_sheet.Range("G:G").Find(What:="value to lookup", _ 
     LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=True) 
+0

范围究竟代表什么?列或行? – user3130669

+0

这是我的代码:Dim t_val As Variant t_val = Sheet2.Range(“A3:H281”)。Find(“A3:H281”,LookIn = xlValues,LookAt(xlWhole,MatchCase = True).Range(“A2 “).Offset(280,281).Select) Sheet1.Range(”A1:Q40194“)。Find(”A1:Q40194“,LookIn = xlValues,LookAt(xlWhole,MatchCase = True).Range(”A1“ ).Offset(40193,40194).Select)= t_val继续收到“编译错误:无效的过程 – user3130669

+0

是啊这是所有错误.... 代码应该做的是要去一个特定的范围列或行或任一组合)并找到一个特定的id,如“apple”,并将该特定的id返回/复制到不同的范围(列或行或任一组合) – mond1111

相关问题