在选择列时添加新行 # 根据循环 #
Adding new Rows while choosing a Column # depending on the loop #
我在 SQL 中有如下行(第 1 行和第 2 行):
我想要的重要事情是将每一行再次添加到同一个 table 中 12 次。
第 1 至 12 列包含每个类别(每行)的每月预算信息。
我需要 12 行的格式,其中预算在字段 DT_VALUE_Nbr 中,因为读取此内容的软件需要一个预算 number/row.
暂时把12行加到同一个table没问题,以后会改的,就是不知道在vba里面怎么写循环您更改记录集并将修改后的记录集插入数据库。
有人建议我将其作为 Access VBA 模块来执行此操作,因为模块已经进行了许多计算。
我对 table 的查询:
SQL = " SELECT AS_VAR_ORG_Version_SK, ORG_Sk, VAR_Sk, DT_VALUE_Nbr, [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] " & _
" FROM dbo.AAAAAA_TEMP "
根据 Excel 中 "Sheet1"
的数据:
您可以运行此代码:
Sub testit()
Dim LastRow As Long, CurRow As Long, NewRow As Long, DestLast As Long
Dim DataSht As Worksheet, DestSht As Worksheet
Set DataSht = Sheets("Sheet1")
Set DestSht = Sheets("Sheet2")
LastRow = DataSht.Range("A" & Rows.Count).End(xlUp).Row
DestSht.Cells.Clear
DataSht.Rows(1).Copy
DestSht.Range("A1").PasteSpecial
DestSht.Range("F1").Value = "Month"
DestSht.Range("G1:Q1").Delete
For CurRow = 2 To LastRow
For NewRow = 1 To 12
DestLast = DestSht.Range("E" & Rows.Count).End(xlUp).Row + 1
DataSht.Range("A" & CurRow & ":Q" & CurRow).Copy
DestSht.Range("A" & DestLast).PasteSpecial
DestSht.Range("E" & DestLast).Value = DestSht.Cells(DestLast, NewRow + 5).Value
DestSht.Range("F" & DestLast).Value = NewRow
DestSht.Range("G" & DestLast & ":Q" & DestLast).Delete
Next NewRow
Next CurRow
End Sub
并在 "Sheet2"
上获得此输出:
我在 SQL 中有如下行(第 1 行和第 2 行):
我想要的重要事情是将每一行再次添加到同一个 table 中 12 次。 第 1 至 12 列包含每个类别(每行)的每月预算信息。 我需要 12 行的格式,其中预算在字段 DT_VALUE_Nbr 中,因为读取此内容的软件需要一个预算 number/row.
暂时把12行加到同一个table没问题,以后会改的,就是不知道在vba里面怎么写循环您更改记录集并将修改后的记录集插入数据库。
有人建议我将其作为 Access VBA 模块来执行此操作,因为模块已经进行了许多计算。
我对 table 的查询:
SQL = " SELECT AS_VAR_ORG_Version_SK, ORG_Sk, VAR_Sk, DT_VALUE_Nbr, [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] " & _
" FROM dbo.AAAAAA_TEMP "
根据 Excel 中 "Sheet1"
的数据:
您可以运行此代码:
Sub testit()
Dim LastRow As Long, CurRow As Long, NewRow As Long, DestLast As Long
Dim DataSht As Worksheet, DestSht As Worksheet
Set DataSht = Sheets("Sheet1")
Set DestSht = Sheets("Sheet2")
LastRow = DataSht.Range("A" & Rows.Count).End(xlUp).Row
DestSht.Cells.Clear
DataSht.Rows(1).Copy
DestSht.Range("A1").PasteSpecial
DestSht.Range("F1").Value = "Month"
DestSht.Range("G1:Q1").Delete
For CurRow = 2 To LastRow
For NewRow = 1 To 12
DestLast = DestSht.Range("E" & Rows.Count).End(xlUp).Row + 1
DataSht.Range("A" & CurRow & ":Q" & CurRow).Copy
DestSht.Range("A" & DestLast).PasteSpecial
DestSht.Range("E" & DestLast).Value = DestSht.Cells(DestLast, NewRow + 5).Value
DestSht.Range("F" & DestLast).Value = NewRow
DestSht.Range("G" & DestLast & ":Q" & DestLast).Delete
Next NewRow
Next CurRow
End Sub
并在 "Sheet2"
上获得此输出: