在Excel中创建唯一的导出数据VBA宏函数

时间:2015-02-20 16:49:18

标签: excel vba excel-vba

此站点的新功能以及Excel VBA的新功能。我已经获得了一个包含大量信息的现有电子表格,并且想知道这里的某个人是否能够提供创建VBA功能的洞察力来完成繁重的工作。

我的挑战是,有很多数据需要保留原始格式,但对于我们的分析,可以将数据导出为下面第二张图所示的格式。

是否有一个函数会循环遍历X标题,然后返回与相应Y标题关联的值并通过不同的组合工作?

原始数据格式:

enter image description here

所需的导出数据格式:

http://i.imgur.com/Slf7SI7.jpg

对此的任何帮助将不胜感激!原始数据不断发展,如果我找不到解决方案,它将变成一个永无止境的复制粘贴练习。

谢谢,

杰森

更新:感谢提示家伙。我查看了一个unpivot代码,并且能够找到它作为资源,它可以工作!:

  Sub NormalizeData()
Dim Rng As Range
Dim WS As Worksheet

On Error Resume Next
Set Rng = Application.InputBox(Prompt:="Select a range to normalize data" _
, Title:="Select a range", Default:=ActiveCell.Address, Type:=8)
On Error GoTo 0

If Rng Is Nothing Then
Else
Application.ScreenUpdating = False
Set WS = Sheet1
i = 0
For c = 1 To Rng.Columns.Count - 1
For r = 1 To Rng.Rows.Count - 1
        WS.Range("A2").Offset(i, 0) = Rng.Offset(0, c).Value
        WS.Range("A2").Offset(i, 1) = Rng.Offset(r, 0).Value
        WS.Range("A2").Offset(i, 2) = Rng.Offset(r, c).Value
        i = i + 1
    Next r
Next c
WS.Range("A:C").EntireColumn.AutoFit
Application.ScreenUpdating = True
End If
End Sub

结果图像如下:

http://imgur.com/3KRikBK

我还在调整它以使用户友好。任何进一步的提示将非常感谢!

0 个答案:

没有答案