excel,vba代码应用到所有表格.doc
文本预览下载声明
excel,vba代码应用到所有表格
篇一:EXCEL常用VBA代码
删除B列中字符串数值少于21的单元格所在的行
Sub 删除行()
r = Range(B65536).End(xlUp).Row #39;行数
For h = r To 1 Step -1
If Cells(h, 2) lt; 21 Then Cells(h, 2).EntireRow.Delete
Next
End Sub
【工作表合并】将同一工作簿中的所有工作表合并到一个工作表中
新建一个工作表,写入代码[在新建的工作表标签处右键 查看代码(找不到的直接按一下alt+F11) 把下面 的代码复制进去 然后点上面的运行 运行子程序即可]:
Sub 合并当前工作簿下的所有工作表()
Application.ScreenUpdating = False
For j = 1 To Sheets.Count
If Sheets(j).Name lt; ActiveSheet.Name Then
X = Range(A65536).End(xlUp).Row + 1
Sheets(j).UsedRange.Copy Cells(X, 1)
End If
Next
Range(B1).Select
Application.ScreenUpdating = True
MsgBox 当前工作簿下的全部工作表已经合并完毕!, vbInformation, 提示
End Sub
*********************************************************
代码这样写也行:
Sub c()
For i = Sheets.Count To 2 Step -1
Sheets(i).Select
Sheets(i).UsedRange.Copy
Sheets(1).Select
Cells(Cells(65000, 1).End(xlUp).Row + 1, 1).Select
ActiveSheet.Paste
#39;Sheets(i).Delete
Next i
End Sub
************************************************************
把一个工作簿中的所有表单合并成一个表单,怎么去掉重复的表头、标题行?方法如下:
Sub c()
For i = Sheets.Count To 2 Step -1
Sheets(i).UsedRange.Offset(1).Copy Sheets(1).Cells(65536, 1).End(xlUp).Offset(1) Next i
End Sub
说明:函数OFFSET(reference,rows,cols,height,width)以指定的引用为参照系,通过给定偏移量得到新的引用。返回的引用可以为一个单元格或单元格区域。并可以指定返回的行数或列数。通俗的讲就是OFFSET(参考单元格,移动的行数,移动的列数,所要引用的行数,所要引用的列数) 参考《关于offset函数》
第三行中第一个offset(1)是假设要要去掉的表头行数,如果有2行表头,就改成offset(2),要去掉几行表头括号中的数字就改成几。第二个offset(1)表示合并以后表格与表格之间要间隔的空行,offset(1)表示不留空行,offset(2)表示间隔1行空行,以此类推。也可以这样写:
Sub c()
For i = Sheets.Count To 2 Step -1
Sheets(i).UsedRange.Offset(2).Copy Sheets(1).Cells(Cells(65536, 1).End(xlUp).Row + 1, 1).Offset(0) ‘这个offset(0)可以不要
Next i
End Sub
****************************************************************
或者用以下宏代码
将同一工作簿中的所有工作表合并到一个新建的工作表中
按ALT+F11调出VBA窗口,插入一个模块,然后把下面的代码复制进去。
Sub hz()
Set NewSheet = Sheets.Add(Type:=xlWorksheet) #39;生成一个新表
Sheets(NewSheet.Index).Move Before:=Sheets(1) #39;将此新表移动到最前面
For i = 2 To Worksheets.Count
Sheets(i).Used
显示全部