Excel VBA 添加新工作表

  • 默认工作簿中添加表
    Worksheets.Add

同时设置表名称:Worksheets.Add().Name="New Sheet"

  • 指定工作簿中添加表
    myWorkbook.Sheets.Add
名称必需/可选数据类型说明
Before可选Variant指定工作表的对象,新建的工作表将置于此工作表之前
After可选Variant指定工作表的对象,新建的工作表将置于此工作表之后
Count可选Variant要添加的工作表数。 默认值为 1
Type可选Variant指定工作表类型
  • 如果同时省略 BeforeAfter,则新工作表插入到活动工作表之前。
  • Type 可以是下列的 XlSheetType 常量之一: xlWorksheetxlChartxlExcel4MacroSheetxlExcel4IntlMacroSheet

表示新工作表、图表或宏工作表的 Object 值。

Excel VBA 添加新工作簿

' 创建工作簿,
Dim newWb As Workbook

'或在另一个应用实例(进程)中创建
Dim newWb as appExcel.Workbook


Set newWb = Workbooks.Add

如果要给工作簿命名,只有在保存时,指定文件名。
wb.SaveAs Filename:="NewWB"

VBA 查找值所在的列号

Function FindColOfValue(ws As Worksheet, val As Variant, rowNum As Long, startCol As Long)
    Dim i As Long
    With ws
    For i = startCol To .Range(.Cells(startCol, rowNum), .Cells(startCol, rowNum)).CurrentRegion.Columns.Count()
        If .Cells(rowNum, i).Value = val Then
            FindColOfValue = i
            Exit Function
        End If
    Next
    End With
    
    FindColOfValue = -1
End Function

VBA 查找值所在的行号

Function FindRowOfValue(ws As Worksheet, val As Variant, colNum As Long, startRow As Long)
    Dim r As Long
    With ws
    For r = startRow To .Range(.Cells(startRow, colNum), .Cells(startRow, colNum)).CurrentRegion.Rows.Count()
        If .Cells(r, colNum).Value = val Then
            FindRowOfValue = r
            Exit Function
        End If
    Next
    End With
End Function