如何根据收入公告的频率使用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到单元格4)向下移动条目;
- 将来自单元格1和2的条目(半年一次)的列条目移至单元格2和4。
我如何使用Visual Basic(VBA)以步骤1和步骤2的方式操作表格? 有没有移动价值的命令,还是必须有条件的剪切和粘贴?
有条件的剪切/粘贴将正常工作。 通常,直接赋值(即Range("A1").Value = Range("A2").Value
)比剪切/粘贴快很多。