VBA之EXCEL删除和设置单元格行高等

简介: ‘删除Sheet1上的单元格区域A1:D10,并将其余单元格左移以填补被删除单元格的位置 Sheet1.Range(“A1:D10”).Delete Shift:=xlShiftToLeft   ‘删除指定行 Range(“1:1”).

删除Sheet1上的单元格区域A1:D10,并将其余单元格左移以填补被删除单元格的位置

Sheet1.Range(“A1:D10”).Delete Shift:=xlShiftToLeft

 

删除指定行

Range(“1:1”).Delete

 

删除指定列

Columns(5).Delete

 

删除当前行

ActiveCell.EntireRow.Delete

 

删除工作表中的重复行

Sub DeleteDupes(strSheetName as String,strColLetter as string)

       Dim strColRange as String

       Dim rngCurrentCell as Range

       Dim rngNextCell as Range

       strColRange=strColLetter & “1”

Worksheets(strSheetName).Range(strColRange).Sort Key1:=Worksheets(strSheetName).Range(strColRange)

       Set rngCurrentCell=Worksheets(strSheetName).Range(strColRange)

       Do While Not IsEmpty(rngCurrentCell)

              Set rngNextCell=rngCurrentCell.Offset(1,0)

              If rngNextCell.Value=rngCurrentCell.Value Then

                     rngCurrentCell.EntireRow.Delete

              End If

              Set rngCurrentCell=rngNextCell

       Loop

End Sub

 

删除自定义数字格式

Sub DeleteNumberFormat()

       MsgBox “从当前工作簿中删除000-00-0000的数字格式

       ActiveWorkbook.DeleteNumberFormat(“000-00-0000”)

End Sub

 

清除内容

Sub ClearContents()

       Selection.SpecialCells(xlCellTypeConstants,23).Select

       Selection.ClearContents

End Sub

 

清除选定单元格的批注

Sub ClearComments()

       Selection.SpecialCells(xlCellTypeComments,23).Select

       Selection.ClearComments

End Sub

 

单元格的插入

在数据表上的单元格区域A1:C5中插入新单元格,并将该位置上原来的单元格向下移动

Sheet1.Range(“A1:C5”).Insert Shift:=xlShiftDown

 

在当前单元格上方插入行

Sub InsertRow()

Dim rRow as Long

MsgBox “在当前单元格上方插入一行

rRow=Selection.Row

ActiveSheet.Rows(Row).Insert

End Sub

 

在当前单元格所在列插入列

Sub InsertColumn()

       Dim cColumn As Long

       MsgBox “在当前单元格所在列的左边插入一列

       cColumn=selection.Column

       ActiveSheet.Columns(cColumn).Insert

End Sub

 

在当前单元格上方插入多行

Sub InsertManyRow()

       MsgBox “在当前单元格所在行上插入三行

       Dim rRow as long ,I as long

       For i=1 to 3

              rRow=Selection.Row

              ActvieSheet.Rows(rRow).Insert

       Next i

End Sub

在活动工作表的第1-3行处插入三行

Sub InsertRows()

       MsgBox “在当前单元格所在行上方插入三行

       ActiveSheet.Rows(“1:3”).Insert

End Sub

 

隐藏当前单元格所在的行

Sub HideRow()

       Dim iRow as Long

       MsgBox “隐藏当前单元格所在的行

       iRow=ActiveCell.Row

       ActiveSheet.Rows(iRow).Hidden=True

       MsgBox “取消隐藏

       ActiveSheet.Rows(iRow).Hidden=False

End Sub

 

隐藏当前单元格所在的列

Sub HideColumn()

       Dim iColumn as Long

       MsgBox “隐藏当前单元格所在的列

       iColumn =ActiveCell.Column

       ActiveSheet.Rows(iColumn).Hidden=True

       MsgBox “取消隐藏

       ActiveSheet.Rows(iColumn).Hidden=False

End Sub

 

设置当前所在单元格的行高

Sub SetRowHeight()

       MsgBox “将当前单元格所在的行高设置为25”

       Dim rRow As Long,iRow As Long

       rRow=ActiveCell.Row

       iRow=ActiveSheet.Rows(rRow).RowHeight

       ActiveSheet.Rows(rRow).RowHeight=25

       MsgBox “恢复到原来的行高

       ActiveSheet.Rows(rRow).RowHeight=iRow

End Sub

 

设置最合适的行高和列宽

Sub AutoFitRowCol()

       Rows(“9:9”).Select

       Selection.Rows.AutoFit

       Columns(“B:D”).Select

       Selection.Columns.AutoFit

End Sub

 

设置当前单元格的列宽

Sub SetColumnWidth()

       MsgBox “将当前单元格所在列的列宽设置为20”

       Dim cColumn As Long,iColumn As Long

       cColumn=ActiveCell.Column

       iColumn=ActiveSheet.Columns(cColumn).ColumnWidth

       ActiveSheet.Columns(cColumn).ColumnWidth=20

       MsgBox “恢复至原来的列宽

       ActiveSheet.Columns(cColumn).ColumnWidth= iColumn

End Sub

 

锁定A1:A5单元格

Range(“A1:A5”).Locked=True

 

接除对Sheet1A1:G37区域单元格的锁定,以便当该工作表受保护时也可以对这些单元格进行修改

Sub UnlockedCell()

       Worksheets(“Sheet1”).Range(“A1:G37”).Locked=False

       Worksheets(“Sheet1”).Protect

End Sub

 

自动对有内容的单个单元格锁定,对没有内容的单个单元格解除锁定

Private Sub Worksheet_SelectionChange(ByVal Targe As Range)

       On Error Resume Next

       If Targe.Cells.Count=1 Then

      如果目标单元格为空

              If Targe=”” Then

              解除工作表的保护

                     Me.Unprotect(“password”)

                     Target.Locked=False

                     Me.Protect(“password”)

              Else

                     Me.Unportect(“password”)

                     设置单元格的锁定

                     Target.Locked=True

                     Me.Protect(“password”)

              End If

       Else

              MsgBox “请选择一个单元格”,vbInformation

              ActiveCell.Select

       End If

End Sub

相关文章
|
23天前
|
SQL 缓存 easyexcel
面试官问10W 行级别数据的 Excel 导入如何10秒处理
面试官问10W 行级别数据的 Excel 导入如何10秒处理
51 0
excel中同一单元格内容分隔到不同的单元格
excel中同一单元格内容分隔到不同的单元格
excel中同一单元格内容分隔到不同的单元格
|
3月前
|
BI 索引 Python
python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
python报表自动化系列 - 译码:与Excel单元格索引对应的十进制数坐标
17 1
|
3月前
|
BI 索引 Python
python报表自动化系列 - Excel单元格(Cell)索引范围对应的所有单元格
python报表自动化系列 - Excel单元格(Cell)索引范围对应的所有单元格
26 0
|
30天前
|
存储 SQL C#
C#实现Excel合并单元格数据导入数据集
C#实现Excel合并单元格数据导入数据集
|
1月前
|
存储 程序员 开发工具
【Excel VBA 从入门到出门】二、Excel VBA 简单使用
【Excel VBA 从入门到出门】二、Excel VBA 简单使用
42 2
|
1月前
|
存储 小程序 开发工具
【Excel VBA 从入门到出门】一、Excel VBA 是个啥?
【Excel VBA 从入门到出门】一、Excel VBA 是个啥?
34 2
|
2月前
|
算法 前端开发
Excel 表中某个范围内的单元格
Excel 表中某个范围内的单元格
19 0
|
2月前
|
前端开发 Java Maven
springboot优雅的实现excel的导出(自适应列宽实现,中文也行),复制可用
springboot优雅的实现excel的导出(自适应列宽实现,中文也行),复制可用
60 0
excel中组合不同单元格的文字并实现单元格内换行
excel中组合不同单元格的文字并实现单元格内换行