工作表:
工作表名稱:
Sheets("Sheet1").Name = "001" '工作表命名WorkSheets.Name 工作表名稱
ActiveWorkbook.Sheets(i).Name '取得工作表i的名稱
================================
'顯示所有工作表名稱
For Each ws In Worksheets
MsgBox ws.Name
Next
================================
設定目前作用的工作表:
WorkSheets("Sheet1").Activate 設定Sheet1工作表為目前作用的工作表Sheets("工作表名稱").Selec
Worksheets(Array(“sheet1”,”sheet2”)).Select '同時選擇工作表1和工作表2
作用工作表:ActiveSheet
ActiveSheet.Name
複製:
'把工作表 Sheet2 複製 , 然後把複製出來的工作表放到工作表 Sheet5 後面Worksheets("Sheet2").Copy After:=Worksheets("Sheet5")
'把工作表 Sheet2 複製 , 然後把複製出來的工作表放到最後面
Worksheets("Sheet2").Copy After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
'把工作表 Sheet2 複製 , 然後把複製出來的工作表放到最前面
Worksheets("Sheet2").Copy After:=ActiveWorkbook.Sheets(1)
移動位置:
'將當前工作表移至最後面ActiveSheet.Move After:=ActiveWorkbook.Sheets(ActiveWorkbook.Sheets.Count)
'將當前工作表移至最前面
ActiveSheet.Move Before:=ActiveWorkbook.Sheets(1)
'將當前工作表移至工作表Sheet3的前面
ActiveSheet.Move Before:=ActiveWorkbook.Sheets("Sheet3")
新增:
Worksheets.Add [Before, After, Count, Type] 新增工作表Before := Worksheets(n) 出現於某工作表之前
After := Worksheets(n) 出現於某工作表之後
Count := n 新增工作表數量
Type := xlWorksheet (工作表) 或 xlChart (圖表)
ThisWorkbook.Sheets.Add Before:=Worksheets(1) '添加一個新工作表在第一工作表前
Sheets.Add '新增一工作表
刪除:
Sheets(“Sheet1”).Delete '刪除工作表Sheet1Sheets(1).Delete '刪除工作表1
其它:
ActiveSheet.UsedRange.Rows.Count ‘當前工作表中已使用的行數Rows.Count ‘獲取工作表的行數
ActiveWindow.DisplayGridlines=Not ActiveWindow.DisplayGridlines '切換工作表中的網格線顯示,這種方法也可以用在其它方面進行相互切換,即相當於開關按鈕
ActiveWindow.DisplayHeadings=Not ActiveWindow.DisplayHeadings ‘切換工作表中的行列邊框顯示
ActiveSheet.UsedRange.FormatConditions.Delete ‘刪除當前工作表中所有的條件格式
Cells.Hyperlinks.Delete ‘取消當前工作表所有超鏈接
ActiveSheet.PageSetup.Orientation=xlLandscape
或ActiveSheet.PageSetup.Orientation=2 '將頁面設置更改為橫向
ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在頁面設置的表尾中輸入文件路徑
ActiveSheet.PageSetup.LeftFooter=Application.UserName ‘將用戶名放置在活動工作表的頁尾
程式碼:
-----------------------------------------------------------------------'製作01到42的工作表
n = 42
For i = 1 To n
Sheets("student").Select
Sheets("student").Copy After:=Sheets(2)
Sheets("student (2)").Select
k = (n + 1) - i
If k < 10 Then
wn = "0" & Str(Trim(k))
Else
wn = Str(Trim(k))
End If
Sheets("student (2)").Name = wn
Next i
--------------------------------------------------------------------------------
ActiveSheet.Columns("B").Insert ‘在A列右側插入列,即插入B列
ActiveSheet.Columns("E").Cut
ActiveSheet.Columns("B").Insert ‘以上兩句將E列數據移至B列,原B列及以後的數據相應後移
ActiveSheet.Columns("B").Cut
ActiveSheet.Columns("E").Insert ‘以上兩句將B列數據移至D列,原C列和D列數據相應左移一列
ActiveSheet.Calculate ‘計算當前工作表
ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetHidden ‘正常隱藏工作表,同在Excel菜單中選擇“格式——工作表——隱藏”操作一樣
ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVeryHidden ‘隱藏工作表,不能通過在Excel菜單中選擇“格式——工作表——取消隱藏”來重新顯示工作表
ThisWorkbook.Worksheets(“sheet1”).Visible=xlSheetVisible ‘顯示被隱藏的工作表
ThisWorkbook.Sheets(1).ProtectContents ‘檢查工作表是否受到保護
ThisWorkbook.Worksheets.Add Count:=2, _
Before:=ThisWorkbook.Worksheets(2)
或 ThisWorkbook.Workshees.Add ThisWorkbook.Worksheets(2), , 2 ‘在第二個工作表之前添加兩個新的工作表
ThisWorkbook.Worksheets(3).Copy ‘複製一個工作表到新的工作簿
ThisWorkbook.Worksheets(3).Copy ThisWorkbook.Worksheets(2) ‘複製第三個工作表到第二個工作表之前
ThisWorkbook.ActiveSheet.Columns.ColumnWidth = 20 ‘改變工作表的列寬為20
ThisWorkbook.ActiveSheet.Columns.ColumnWidth = _
ThisWorkbook.ActiveSheet.StandardWidth ‘將工作表的列寬恢復為標準值
ThisWorkbook.ActiveSheet.Columns(1).ColumnWidth = 20 ‘改變工作表列1的寬度為20
ThisWorkbook.ActiveSheet.Rows.RowHeight = 10 ‘改變工作表的行高為10
ThisWorkbook.ActiveSheet.Rows.RowHeight = _
ThisWorkbook.ActiveSheet.StandardHeight ‘將工作表的行高恢復為標準值
ThisWorkbook.ActiveSheet.Rows(1).RowHeight = 10 ‘改變工作表的行1的高度值設置為10
ThisWorkbook.Worksheets(1).Activate ‘當前工作簿中的第一個工作表被激活
ThisWorkbook.Worksheets("Sheet1").Rows(1).Font.Bold = True ‘設置工作表Sheet1中的行1數據為粗體
ThisWorkbook.Worksheets("Sheet1").Rows(1).Hidden = True ‘將工作表Sheet1中的行1隱藏
ActiveCell.EntireRow.Hidden = True ‘將當前工作表中活動儲存格所在的行隱藏
注:同樣可用於列。
ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自動調整當前工作表A列列寬
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘選中當前工作表中常量和文本儲存格
ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘選中當前工作表中常量和文本及錯誤值儲存格
請問我有一個活頁簿
回覆刪除裡面有10個工作表
當我在[工作表1]輸入1組資料時
[工作表1]的儲存格[a1]已有公式會判斷這一組資料要放在[工作表5]
所以當我執行巨集時,
會自動將[工作表1]的資料剪下後貼到[工作表5]
我的問題是[a1]是變動的,
當我輸入另一筆資料時,[a1]可能會判斷這1組資料要放在另1個[工作表9]
我要在巨集中如何修改程式碼,讓它可以依照[a1]的指示放到對應的工作表內??
能否回覆至我的信箱pendy0239@gmail.com
謝謝您
請問我有一個活頁簿
回覆刪除裡面有10個工作表
當我在[工作表1]輸入1組資料時
[工作表1]的儲存格[a1]已有公式會判斷這一組資料要放在[工作表5]
所以當我執行巨集時,
會自動將[工作表1]的資料剪下後貼到[工作表5]
我的問題是[a1]是變動的,
當我輸入另一筆資料時,[a1]可能會判斷這1組資料要放在另1個[工作表9]
我要在巨集中如何修改程式碼,讓它可以依照[a1]的指示放到對應的工作表內??
能否回覆至我的信箱pendy0239@gmail.com
謝謝您
作者已經移除這則留言。
回覆刪除請問,都在同一個活頁簿情況下,我在工作表1的A1欄位輸入A,則會對應到工作表2的A1欄位顯示甲,工作表1的A1欄位輸入B,則會對應到工作表2的A1欄位顯示乙,以此類推的VBA巨集該如何撰寫。
回覆刪除謝謝你!!
能否回應至我的信箱:jinnia91656@gmail.com
您好,請問有沒有甚麼方式
回覆刪除我想同時做出A、B兩個類似的活頁簿
(但是兩個活頁簿都有20個以上,幾乎相同的工作表),
而A與B的活頁簿工作表中的內容只差別在於B活頁簿中有多兩個欄位的資料,
其中A與B的所有工作表內容都一樣,只是B的每個工作表都多兩個欄位
EX: 有沒有甚麼方法是不用將A活頁簿做複製之後再於B的每個工作表中逐一去新增欄位的?
因為我也不確定是否有這種功能,
能否回覆至我的信箱 yahan9806@gmail.com
感謝您!!!
在保護工作表的情況下,可以複製列,然後再插入複製的列,VBA該如何撰寫
回覆刪除謝謝你!!
能否回應至我的信箱:morelluther99@yahoo.com.tw
版主,您好!冒昧請問下面的程式,跑到下列這行就卡住,如何解決?感謝!
回覆刪除.Refresh BackgroundQuery:=False
With ActiveSheet.QueryTables.Add(Connection:= _
"URL;" & StrWebSite, Destination _
:=Range("$A$2"))
.Name = "zcq_1234.djhtm"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.WebSelectionType = xlEntirePage
.WebFormatting = xlWebFormattingAll
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.WebDisableRedirections = False
.Refresh BackgroundQuery:=False
End With
請問:我的工作表以數字命名,當要指定到"1"的工作表時,vba會判定為從前面開始數第一個工作表,請問該如何寫才正確?
回覆刪除Sub 測試II()
Dim Wb As Workbook, Sh As Worksheet
Set Wb = Workbooks(Workbooks("Macro.xlsm").Worksheets("VBA").Range("B1").Value) '儲存格的值為檔案名稱
Set Sh = Wb.Worksheets(Worksheets("VBA").Range("B2").Value) '儲存格的值為工作表名稱
Sh.Activate 'Range("B2")的值為數字,也就是工作表名稱
End Sub