重复的单元格跳过10行

时间:2015-11-19 12:20:19

标签: excel vba excel-vba

我有一张带有两张纸的Excel电子表格,Sheet 1包含一些我希望复制的文本和公式,以便为我的项目编写2,000多行C#代码。非常重复,所以我想我可以使用Excel为我编写它。 Sheet 2包含我的数据库的摘录,我希望用它来填充这些值。我的Excel代码部分看起来像这样,分布在10行和5列上:

new AccountingPeriod()              
    {           
        MonthCovered="=Sheet2!B2",
        StartDate=DateTime.Parse("Sheet2!C2"),
        EndDate=DateTime.Parse("Sheet2!D2"),
        AccountingPeriodDescription="Sheet2!E2",
        Active='=Sheet2!F2',
        April='=Sheet2!G2,
        TaxYear="Sheet2!H2"
    },      

当我突出显示这10行并使用Excel重复工具时,我希望单元格引用(例如,在我的电子表格Sheet1!D3 = Sheet2!B2中,我希望Sheet1!D13 = Sheet2!B3 NOT Sheet2!B13)增加1,而不是10,因为它是在我的电子表格中完成。

我们尝试了另一种编写宏的方法,在Sheet2中为每个填充的行插入10个空白行,以便重复的引用在Sheet1中正确但我们目前在获取时失败了这是正常工作。

1 个答案:

答案 0 :(得分:1)

使用带有少量数学的INDEX function来实现10比1的行交错,而不是使用副本在1对1上更改的直接引用。

在Sheet1!D3中,这引用了Sheet2!B2。

=INDEX(Sheet2!B:B,INT(ROW(1:1)/10)+2)

在Sheet1!D13中,这引用了Sheet2!B3。

OFFSET function可以完成同样的事情,但它是一个易失性函数,只要工作簿中的任何内容发生变化,就会重新计算。 INDEX提供相同的功能,同时保持非易失性,只有在影响其返回值的内容发生变化时才会重新计算。