我是excel中创建宏的新手。我正在从sql developer生成报告并创建excel文件。
现在我想创建宏并在excel中重新排列我的结果。为此,我想在Excel中创建按钮,然后单击按钮。
我不确定它是否可以在excel宏中执行。我正在使用2016年的办公室版本。
答案 0 :(得分:1)
您可以在SQL中使用以下内容进行组合:
SELECT
i.name, i.id, id.date, id.import,
e.export,
v.volume
FROM IMPORT AS i
LEFT JOIN EXPORT AS e ON i.date = e.date
LEFT JOIN VOLUME AS v ON i.date = v.date
我是SQL的新手,但我慢慢习惯于编写查询,所以希望我的建议没有出错。
或者,如果您仍希望在Excel中执行此操作,则以下操作
假设:从正确的工作簿中运行宏并激活正确的工作表
Sub consolidateOutput()
' note: this presumes your import data will always be on the first row
Dim exportStartRow, volumeStartRow, lastRow As Integer
lastRow = Range("D" & Rows.Count).End(xlUp).Row ' finds the last row with data in column D
For i = 1 To lastRow ' loop through column D from the 1st row until the last row with data
If Range("D" & i).Value = "export" Then '
exportStartRow = i ' set the row number where you found "export"
ElseIf Range("D" & i).Value = "volume" Then
volumeStartRow = i ' set the row number where you found "volume"
GoTo exitLoop
End If
Next i
exitLoop:
' using the row numbers you found above, select and then past the export data
Range("D" & exportStartRow & ":D" & volumeStartRow - 1).Select
Selection.Copy
Range("E1").Select
ActiveSheet.Paste
' using the row numbers you found above, select and then past the volume data
Range("D" & volumeStartRow & ":D" & lastRow).Select
Selection.Copy
Range("F1").Select
ActiveSheet.Paste
End Sub