想要根据关键字将数据拆分成多个工作表

时间:2015-10-08 17:04:52

标签: excel-vba vba excel

我正在处理宏项目,根据以下条件将数据从单张分割为多张:
1)从第1行的“data1”中选择数据,直到出现下一行的“data1” 2)将其剪切并粘贴到新工作表中 3)执行此操作直到没有数据。

我尝试在excel中记录宏,但由于数据是动态的,因此无法实现。

参考样本输入数据如下: Sample Input

输出数据应为: 第1页:

<script>
$(document).ready(function()
{
   var e = document.getElementById("itemWidgetType");
   var strUser = e.options[e.selectedIndex].text;
   var initWidgetTypeSelected='#sItemTypeName#';
   if( initWidgetTypeSelected === 'Numeric')
   {
        if(strUsr == 'Slider')
        {
           alert('You are here');
           $('##numSliderSec1').css('display','table-row');
           $('##numSliderSec2').css('display','table-row');
           $('##numSliderSec3').css('display','table-row');
           $('##numSliderSec4').css('display','table-row');
           $('##numSliderSec5').css('display','table-row');
           $('##numSliderSec6').css('display','table-row');
           $('##numSliderSec7').css('display','table-row');
           $('##numTextBoxSec').css('display','none');
        }
        else
        {
           alert('##no...you are here');
           $('##numSliderSec1').css('display','none');
           $('##numSliderSec2').css('display','none');
           $('##numSliderSec3').css('display','none');
           $('##numSliderSec4').css('display','none');
           $('##numSliderSec5').css('display','none');
           $('##numSliderSec6').css('display','none');
           $('##numSliderSec7').css('display','none');
           $('##numTextBoxSec').css('display','table-row');
        }
    }
});
</script>

表2:

Data 1  Data 2  Data 3  Data 4  Data 5  Data 6  Data 7  Data 8  Data 9  Data 10
Mark    1       5       78      67      23      67      892     62      27
polo    2       83      156     145     101     145     970     140     105
Tango   3       88      234     212     124     212     1862    202     132

表3:

Data 1  Data 2  Data 3  Data 4  Data 5  Data 6  Data 7  Data 8  Data 9  Data 10
Laptop  1       83      156     145     101     145     970     140     105
disk    2       415     12168   9715    2323    9715    865240  8680    2835
key     3       327     11934   9503    2199    9503    863378  8478    2703
Buttons 4       56      47      8       9       456     89      15      89
clips   5       61      125     75      32      523     981     77      116
mike    6       117     172     83      41      979     1070    92      205

我是VBA的新手。任何帮助表示赞赏。感谢。

1 个答案:

答案 0 :(得分:0)

这是你可以做到的一种方式:

Sub Macro1()
'Declare Variables
Dim i, lastrow, iStart As Long
Dim sht, nsht As Worksheet
'Set current sheet and last row of current sheet
Set sht = ActiveSheet
lastrow = ActiveSheet.UsedRange.Rows(UBound(ActiveSheet.UsedRange.Value)).Row
iStart = 1

'Loop through rows and copy rows into new sheet
For i = 1 To lastrow
    If sht.Range("A" & i).Value = "Data 1" Then
        iStart = i
    End If
    If sht.Range("A" & i + 1).Value = "Data 1" Or i = lastrow Then
        'Add new sheet and paste rows between Data 1 and row before next Data 1
        Worksheets.Add
        Set nsht = ActiveSheet
        sht.Rows(iStart & ":" & i).Copy
        nsht.Range("A1").PasteSpecial xlPasteValues
        sht.Activate
    End If
Next i

End Sub