Excel:从另一个WS更新一个WS

我有一个包含大量数据的大型电子表格(RawData),我一直在工作簿中创build选项卡,以使用INDEX / MATCH函数(比VLOOKUP更快)以更友好的方式查看这些数据。 我现在希望能够从标签中更新底层数据表(RawData)。 在选项卡中,我将当前值与相邻列中的单元格并排排列,我希望能够input一个或多个当前值。 我想出了一个迂回的方式来做到这一点,但没有任何技巧。

任何build议,我如何做到这一点与一些技巧。 可以通过点击“Enter”或点击“更新”button来更新每个条目的Updtae,以更新工作表中所有已编辑的字段。

编辑:我这样做的方式是“蛮力”。 我使用一个列表框来select一个logging(行),标签中显示的所有数据来自这一行。 我也知道选项卡上的每个值来自哪个列,它被硬编码到INDEX / MATCH语句中。 所以对于更新我使用隐藏的字段包含当前行和每个值的列号。 我从VBA中选取这些数字并更新值。 我想摆脱这些隐藏的领域!

这是我现在的简单代码,它正在工作,但…

Sub Update() Dim NewValue As Variant 'Current record in RawData is always found in cell D5 on the Summary Sheet aRow = ActiveWorkbook.Worksheets("Summary").Cells(5, 3).Value For i = 1 To 20 'max 20 rows i Module that can be updated 'Column to update in rawdata read from col M (Hidden value) aCol = ActiveWorkbook.Worksheets("Summary").Cells(i + 8, 13).Value 'New value in adjacent cell NewValue = ActiveWorkbook.Worksheets("Summary").Cells(i + 8, 12).Value If NewValue <> "" Then ActiveWorkbook.Worksheets("RawData").Cells(aRow + 1, aCol).Value = NewValue End If Next i End Sub 

我已经开发了一点点,只是为了完成我在这里发表的讨论。 我已经开始使用隐藏的领域的想法。 我现在还在RawData中命名了所有的范围(列),使生活更简单,并引入更less的错误。

这就是我现在所拥有的。 (我不明白如何将代码粘贴到这个论坛!!!)

 Public PreviousValue As Variant Sub Update() Dim NewValue As Variant Dim LastRow As Long 'Current record in RawData is always found in cell Range Current_Record on the Summary Sheet aRow = Range("Current_Record") ' Find the last row to update in thee Module sheet LastRow = ActiveSheet.Cells(ActiveSheet.Rows.Count, "H").End(xlUp).Row For i = 8 To LastRow 'Data starts in row 8, update till last row in Module 'Save the oldValue for use in the Audit trail PreviousValue = ActiveSheet.Cells(i, "D").Value 'Column to update in RawData read from col H (Hidden value) aCol = ActiveSheet.Cells(i, "H").Value 'New value in adjacent cell to the left in column G NewValue = ActiveSheet.Cells(i, "G").Value If NewValue <> "" Then ActiveWorkbook.Worksheets("RawData").Cells(aRow + 1, aCol).Value = NewValue ActiveSheet.Cells(i, "G").Value = "" 'Erase the value in the Module Sheet End If Next i End Sub