2016-09-19 36 views
2

我试图将数据从一个工作簿的“输入工作表”移动到另一个工作簿“主工作簿”。两张纸都在同一个文件中,如果可能的话,如果两个文件不必同时打开以传输数据,但是一旦数据传输完毕,主工作簿就会自动保存。链接到下面的文件的图像,以便更容易理解我正在尝试做什么。将输入表中的信息传输到主工作表

输入工作表中的数据位于第6行A-J列中,每个用户输入他们要求完成的任务的详细信息。我希望当单击一个按钮时,输入工作表中的数据将被传输到主工作簿中的第2行BK列中,以便每次输入并传输新任务时,都会显示在下面的行中(以便它可稍后枢转等)。

http://i.stack.imgur.com/b2cyI.jpg - 输入薄片

http://i.stack.imgur.com/JZr0a.jpg - 原材

+0

如果您已尝试过任何操作,请发送代码 – gizlmo

回答

1
  1. 使用宏here获得在主表的最后一排。
  2. 然后,只需将输入工作表中的值写入主工作表中的相应单元格即可。
  3. 就是这样。这是你如何引用单元格:

    tbl_master.cells(1,3)= tbl_input.cells(3,5).value的

确保在tbl_input行是一个变量,来从函数中计算最后一行。试一试!

编辑: 这是我使用的最后一行:

Public Function last_row_with_data(ByVal lng_column_number As Long, shCurrent As Variant) As Long 

    last_row_with_data = shCurrent.Cells(Rows.Count, lng_column_number).End(xlUp).Row 

End Function 

如果你想找到表的B列的最后一行“tbl_main”你这样称呼它:

last_row_with_data(2,tbl_main) 

编辑2: 在此处更改工作表的名称,并按名称引用它们。 enter image description here

为了获得此窗口,请选择左边的表格并按F4键。

+0

感谢您的支持。我是否需要对宏执行任何特殊操作才能找到最后一行,因为A列已经填充了数字1,2,3,4,5等,而列b是我传输的数据需要去的第一个位置?还有(1,3)指的是单元格引用,如1中的3,下?对不起,VBA很新,但要学习! –

+0

嗨@GCob我编辑它应该工作的东西。 – Vityata

+0

谢谢@Vityata,试图让我的头在附近。我的主文件叫做groupmastertasklist,输入文件叫做grouptaskinputlist。在引用输入工作簿中的哪些单元格需要转到主工作簿中的哪些单元格时,如何引用宏中文件的位置?到目前为止,我已经把你的建议的行查找宏,但不知道如何添加下一部分。公共函数last_row_with_data(ByVal lng_column_number As Long,shCurrent As Variant)As Long last_row_with_data = shCurrent.Cells(Rows.Count,lng_column_number).End(xlUp).Row End Function –

相关问题