创建宏并重新排列excel中的结果选项卡

时间:2017-09-29 13:16:06

标签: excel-vba excel-formula excel-2016 vba excel

我是excel中创建宏的新手。我正在从sql developer生成报告并创建excel文件。

现在我想创建宏并在excel中重新排列我的结果。为此,我想在Excel中创建按钮,然后单击按钮。

我不确定它是否可以在excel宏中执行。我正在使用2016年的办公室版本。

1 个答案:

答案 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