代码之家  ›  专栏  ›  技术社区  ›  Darren

我需要显示在一个体面的网页或word文档excel数据?

  •  0
  • Darren  · 技术社区  · 17 年前

    我有用excel格式的调查结果。然后我需要显示这些结果单独与标题上的一个可呈现的word文档或wewb页?有什么办法做这件事。

    例如:

    结果2-结果2

    第1列

    结果一

    第2栏

    结果一

    第1栏

    结果2

    第2列

    结果2

    谢谢

    2 回复  |  直到 17 年前
        1
  •  1
  •   Allain Lalonde    17 年前

    听起来您需要在word中使用“邮件合并”,然后将excel电子表格作为数据源。

        2
  •  0
  •   Ryan    17 年前

    在您的问题中没有太多的信息可供参考,但似乎可以使用宏来转换数据。我编写了一个快速宏,它以您提供的格式获取数据,并按您指定的格式输出数据。

    我将使用下面的宏在Excel中创建一个新的工作表,然后根据需要对其进行操作或粘贴到Word中。没有更多的信息,就没什么好说的了。

    **Input**
    Column A      Column B
    Result A1     Result B1
    Result A2     Result B2
    **Output**
    Column A
    Result A1
    Column B
    Result B1
    Column A
    Result A2
    Column B
    Result B2
    

    以下是宏:

    ' Transforms the current sheet
    ' This method takes columns and rows and outputs a
    ' single This is not a transpose method, but similar.
    Public Sub TransformSheet()
        Dim SourceSheet As Worksheet
        Dim ResultSheet As Worksheet
        Dim iSourceColumn As Long, iSourceRow As Long
        Dim iResultColumn As Long, iResultRow As Long
        Dim iHeaderRow As Long
        Dim UseCopyPaste As Boolean
        ' Change source and result sheets as necessary
        Set SourceSheet = ActiveSheet
        Set ResultSheet = ActiveWorkbook.Sheets("Sheet2")
        ' Options
        UseCopyPaste = True
        iHeaderRow = 1
        iResultColumn = 1
        iResultRow = 1
        ' Main Loop
        For iSourceRow = 2 To SourceSheet.UsedRange.Rows.Count
            For iSourceColumn = 1 To SourceSheet.UsedRange.Columns.Count
                If UseCopyPaste Then
                    ' Header Column
                    SourceSheet.Cells(iHeaderRow, iSourceColumn).Copy
                    ResultSheet.Cells(iResultRow, iResultColumn).PasteSpecial xlPasteAll
                    iResultRow = iResultRow + 1
                    ' Result  Column
                    SourceSheet.Cells(iSourceRow, iSourceColumn).Copy
                    ResultSheet.Cells(iResultRow, iResultColumn).PasteSpecial xlPasteAll
                    iResultRow = iResultRow + 1
                Else
                    ' Header Column
                    ResultSheet.Cells(iResultRow, iResultColumn) = _
                        SourceSheet.Cells(iHeaderRow, iSourceColumn).Value
                    iResultRow = iResultRow + 1
                    ' Result Column
                    ResultSheet.Cells(iResultRow, iResultColumn) = _
                        SourceSheet.Cells(iSourceRow, iSourceColumn).Value
                    iResultRow = iResultRow + 1
                End If
            Next iSourceColumn
        Next iSourceRow
    End Sub