|
楼主 |
发表于 2023-7-26 11:10:32
|
显示全部楼层
任务一:合并的逻辑框架
1. 公司层次关系
- Company1 (母公司)
- Company2-6 (Company1全资控股)
- Company7 (Company1持有48%股份)
2. 合并报表的顺序
- 首先,对Company7进行按照比例合并,将其纳入Company1的范围。
- 然后,逐层合并Company2-6到Company1,按照全资控股的关系。
任务二:合并报表的公司
合并报表的公司包括Company1、Company2、Company3、Company4、Company5、Company6和Company7。
任务三:使用SQL写代码,从各账套取数,并合并
以下是从各账套取数并合并的示例SQL代码:
```sql
-- 公司1(母公司)
SELECT * FROM Company1.[表名]
-- 公司2-6(全资控股)
SELECT * FROM Company2.[表名]
UNION ALL
SELECT * FROM Company3.[表名]
UNION ALL
SELECT * FROM Company4.[表名]
UNION ALL
SELECT * FROM Company5.[表名]
UNION ALL
SELECT * FROM Company6.[表名]
-- 公司7(48%股份)
SELECT * FROM Company7.[表名]
```
根据具体情况,将上述代码中的[表名]替换为对应的表名,执行SQL语句后,可以获取各账套的数据,并按需要进行合并。
任务四:写段VBA代码,将系统导出的带核算项目余额表报表整理合并
以下是一个示例的VBA代码,用于整理合并系统导出的带核算项目余额表报表:
```vba
Sub MergeBalanceSheet()
Dim wb As Workbook
Dim ws As Worksheet
Dim lastRow As Long
Dim currRow As Long
' 打开系统导出的带核算项目余额表报表
Set wb = Workbooks.Open("报表文件路径")
Set ws = wb.Worksheets("报表名称")
' 获取最后一行
lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
' 从第2行开始逐行处理
For currRow = 2 To lastRow
' 获取公司名称列的数值
Dim companyName As String
companyName = ws.Cells(currRow, 1).Value
' 根据公司名称进行合并操作
Select Case companyName
Case "Company1"
' 合并到Company1的相关逻辑
' ...
Case "Company2", "Company3", "Company4", "Company5", "Company6"
' 合并到Company2-6的相关逻辑
' ...
Case "Company7"
' 合并到Company7的相关逻辑
' ...
End Select
Next currRow
' 关闭报表文件
wb.Close SaveChanges:=False
End Sub
```
需要根据实际情况,根据报表结构和合并要求,编写相关的逻辑代码来实现报表的整合与合并操作。
请注意,以上代码只是一个示例,具体的代码细节需要根据实际情况进行调整和完善。 |
|