中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
用列信息批量生成工作表,看這篇就夠了

▎寫在前面

本文通過一個簡單的案例,詳細講解批量生成多個工作表的VBA需求,并考慮可能出現(xiàn)的一些問題,加深對If條件判斷的使用。新手建議一步一步根據(jù)文章內(nèi)容進行測試。

▎案例需求

實際需求模擬如下:

以當前工作表作為模板表格,以H列信息作為需要生成的工作表名稱,批量生成。

實現(xiàn)代碼:

Sub 批量生成工作表() Application.ScreenUpdating = False '取消屏幕刷新,加快速度 Set sht = Worksheets("模板") '將名字為模板的sheet賦值給對象變量sht For i = 2 To sht.Cells(Rows.Count, "h").End(3).Row '對H列數(shù)據(jù)進行循環(huán) sht.Copy After:=Worksheets(Worksheets.Count) '錄制宏可得到該句代碼,目的是將模板表復制并且新增作為最后一個表格 Worksheets(Worksheets.Count).Name = sht.Cells(i, "h") '修改sheet的名字為H列的具體單元格名字 Next Application.ScreenUpdating = True '開啟屏幕刷新 MsgBox "完成!"End Sub
核心語句:  sht.Copy After:=Worksheets(Worksheets.Count),其中為什么這塊是Worksheets.Count ,是因為新建的Sheet默認都是在最后一個。所以可以通過索引號直接獲取新建的Sheet。一句可以通過以下步驟錄制宏來獲取。

錄制宏的語句:

Sub1() Sheets("對照表").Copy After:=Sheets(1)End Sub

代碼整體運行結果:

但是現(xiàn)在這種情況有個小問題,就是列信息和模板都在同一個sheet里面,這就導致,生成的sheet里面都包含有多余的信息。我們再加兩句刪除多余信息的代碼即可。
Sub 批量生成工作表() Application.ScreenUpdating = False '取消屏幕刷新,加快速度 Set sht = Worksheets("模板") '將名字為模板的sheet賦值給對象變量sht For i = 2 To sht.Cells(Rows.Count, "h").End(3).Row '對H列數(shù)據(jù)進行循環(huán) sht.Copy After:=Worksheets(Worksheets.Count) '錄制宏可得到該句代碼,目的是將模板表復制并且新增作為最后一個表格 Worksheets(Worksheets.Count).Name = sht.Cells(i, "h") '修改sheet的名字為H列的具體單元格名字 Worksheets(Worksheets.Count).Columns("h").Delete'刪除H列信息        Worksheets(Worksheets.Count).Shapes("按鈕 1").Delete'刪除程序執(zhí)行按鈕 Next Application.ScreenUpdating = True '開啟屏幕刷新 MsgBox "完成!"End Sub

當然,根據(jù)實際情況來,如果把Sheet名列和模板Sheet不在一個Sheet里面的話,就不必這兩句刪除代碼了。

▎變化的情形

?如果新增的某個Sheet已經(jīng)存在,程序就會報錯。這個時候我們在新增Sheet之前,就要增加一個判斷是否已存在相同名字表格的判斷。這里,我們使用一個自定義函數(shù)IsSheetExisted。

完整代碼:

Sub 批量生成工作表2() Application.ScreenUpdating = False '取消屏幕刷新,加快速度 Set sht = Worksheets("模板") '將名字為模板的sheet賦值給對象變量sht For i = 2 To sht.Cells(Rows.Count, "h").End(3).Row '對H列數(shù)據(jù)進行循環(huán) If IsSheetExisted(sht.Cells(i, "h")) = False Then sht.Copy After:=Worksheets(Worksheets.Count) '錄制宏可得到該句代碼,目的是將模板表復制并且新增作為最后一個表格 Worksheets(Worksheets.Count).Name = sht.Cells(i, "h") '修改sheet的名字為H列的具體單元格名字 Worksheets(Worksheets.Count).Columns("h").Delete Worksheets(Worksheets.Count).Shapes("按鈕 1").Delete End If Next Application.ScreenUpdating = True MsgBox "完成!"End SubFunction IsSheetExisted(tabname As String) As Boolean Dim sht As Worksheet For Each sht In Worksheets If sht.Name = tabname Then IsSheetExisted = True Exit Function End If Next IsSheetExisted = FalseEnd Function

?

?

?如果H列有空單元格,則會造成新建表格命名的時候失敗。這個時候我們需要再加1個條件判斷,當H列信息不為空的時候,才進行新建Sheet操作。

Sub 批量生成工作表2() Application.ScreenUpdating = False '取消屏幕刷新,加快速度 Set sht = Worksheets("模板") '將名字為模板的sheet賦值給對象變量sht For i = 2 To sht.Cells(Rows.Count, "h").End(3).Row '對H列數(shù)據(jù)進行循環(huán) If sht.Cells(i, "h") <> "" Then If IsSheetExisted(sht.Cells(i, "h")) = False Then sht.Copy After:=Worksheets(Worksheets.Count) '錄制宏可得到該句代碼,目的是將模板表復制并且新增作為最后一個表格 Worksheets(Worksheets.Count).Name = sht.Cells(i, "h") '修改sheet的名字為H列的具體單元格名字 Worksheets(Worksheets.Count).Columns("h").Delete Worksheets(Worksheets.Count).Shapes("按鈕 1").Delete End If End If Next Application.ScreenUpdating = True MsgBox "完成!"End SubFunction IsSheetExisted(tabname As String) As Boolean Dim sht As Worksheet For Each sht In Worksheets If sht.Name = tabname Then IsSheetExisted = True Exit Function End If Next IsSheetExisted = FalseEnd Function
各種情形都寫出來了,最重要的不是代碼本身,是根據(jù)各種情況,如何使用條件語句判斷的邏輯才是核心。
本站僅提供存儲服務,所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
ExcelVBA_014 匯總表拆分為明細表
EXCEL_VBA常用語句
教程 | Excel中超實用的86種常用VBA寫法
用VB操作excel方法匯總
3、JS | 用WPS表格批量新建與刪除工作表
VBA|多個工作表中的數(shù)據(jù)自動合并到一個工作表
更多類似文章 >>
生活服務
熱點新聞
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服