将范围从一张纸复制到另一张

时间:2015-06-22 15:49:24

标签: excel vba excel-vba

我希望您在我目前面临的问题上提供帮助。 我有2张,

  • (A)主数据表
  • (B)详细活动。

主数据表将包含所有进程名称以及相应的活动以及其他列中的其他一些详细信息。 (基本上是数据库)我在主数据表中有4列,即进程名称,活动,活动所有者和小时。

在“详细活动”表中,有多个列,包括主数据表中的列。 (即流程名称,活动,活动所有者和营业时间。)

问题:

当我在"流程名称"的详细活动表中输入流程名称时,我想在计划表中自动填充相应的活动,活动所有者和小时列。 然后,当在输入的前一个过程名称下面输入另一个过程名称时,相应的列应该自动填充。(根据主数据表中提到的详细信息)。

我制作了这段代码,但我给出了具体的范围。以下代码仅适用于1个进程名称。 (这就是我给出具体范围的原因) 我想编写至少40个进程的代码,我应该可以输入一个低于另一个的范围。

For Detailed Activity Sheet
    Column C = Process name
    Column L = Activity
    Column M = Activity Owner
    Column N = Hours

For Master Data Sheet
    Column A = Process name
    Column B = Activity
    Column C = Activity Owner
    Column D = Hours

对于转移过程,有10行Acitvity,Activity所有者和小时。 所以,当我进入"转移"在详细活动表的流程列中,代码应搜索关键字" transfer"在主数据表中,然后将活动,活动所有者和小时的相应行数从主数据表复制到详细的活动表。

然后当我输入另一个进程名称时,应该再次执行相同的功能。

评论代码

Private Sub Worksheet_Change(ByVal Target As Range) 
    Application.EnableEvents = False 
    Select Case Range("C2").Value 
        Case "Transfer" 
            Sheets("Detailed Activities").Range("L2:L12").Value = _
                Sheets("Master Data Sheet").Range("B2:B12").Value 
            Sheets("Detailed Activities").Range("M2:M12").Value = _ 
                Sheets("Master Data Sheet").Range("C2:C12").Value
            Sheets("Detailed Activities").Range("N2:N12").Value = _
                Sheets("Master Data Sheet").Range("D2:D12").Value 
    End Select 
    Application.EnableEvents = True 
End Sub

0 个答案:

没有答案