我正在处理宏项目,根据以下条件将数据从单张分割为多张:
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的新手。任何帮助表示赞赏。感谢。
答案 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