如何根据收入公告的频率使用Visual Basic对应用程序有条件地对Excel表格中的EPS数据进行重新sorting?

我已经下载了大量资产的Bloomberg每股收益数据,为期一年。 结果表格测量4行和大约3000列。 某些列包含四个值,其中一些包含两个值,而另一些包含一个值,因为报告要求存在差异:

  • 一些公司每年公布他们的收入(31/12:1价值)
  • 一些公司每半年宣布一次收益(31/6和31/12:2值)
  • 一些公司每季度公布他们的收益(31/3,31 / 6,31 / 9,31 / 12:4值)

表格值(B17:DKZ20)前面有一列公告date(A17:A20),这与我列表中第一家公司的季度公告相对应,因为这是最高的可能频率,涵盖了所有可能的收益date公告(31/03; 31/06; 31/09; 31/12)。

因为我用了:

Range(B17:DKZ17).Formula = "=BDH([Ticker], ""IS_EPS"", [Beginning Date], [End Date], ""Dates, Period"", ""H,M"")" 

使用可选的参数来隐藏date,以便直接显示彼此相邻的值,这可以更清楚地写成:

 ""Dates = Hidden"" 

该表格现在只是包含收益公告的顺序,即按季度收益公告正确显示date,但年度公告显示为已在31/03(当31/12为正确时)和半年度公告显示为31/03和31/6(31/06和31/12是正确的)。

我需要做的是为了纠正这个问题:

  1. 只有一个条目(每年)三个单元格(从单元格1到单元格4)向下移动条目;
  2. 将来自单元格1和2的条目(半年一次)的列条目移至单元格2和4。

我如何使用Visual Basic(VBA)以步骤1和步骤2的方式操作表格? 有没有移动价值的命令,还是必须有条件的剪切和粘贴?

有条件的剪切/粘贴将正常工作。 通常,直接赋值(即Range("A1").Value = Range("A2").Value )比剪切/粘贴快很多。