达永编程网

程序员技术分享与交流平台

Excel-VBA代码,常用语句(43)

隐藏指定工作表的指定列

Sub 隐藏指定工作表的指定列()

Sheet1.Columns("B:B").EntireColumn.Hidden = True

End Sub

把a列不重复值取到e列

Sub 把a列不重复值取到e列()

[A:A].AdvancedFilter 2, , [e1], 1

End Sub

当前选区的行列数

Sub 当前选区的行列数()

Range("A1") = Selection.Rows.Count '当前选区的行数

Range("B1") = Selection.Columns.Count '当前选区的列数

End Sub

单元格录入1位字符就跳转(工作表代码)

Private Sub TextBox1_Change()

If Len(Me.TextBox1.Text) <> 1 Then Exit Sub

Me.TextBox1.Activate

ActiveCell = Me.TextBox1.Text

Me.TextBox1.Text = ""

ActiveCell.Activate

Application.SendKeys "~"

End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

With TextBox1

.Left = ActiveCell.Left

.Top = ActiveCell.Top

.Width = ActiveCell.Width

.Height = ActiveCell.Height

End With

Me.TextBox1.Activate

End SubSub

当指定日期(每月10日)打开文件执行宏

Sub auto_open()

If Day(Date) = 10 Then

重排窗口

End If

End Sub

提示并清空单元区域

Sub 清空单元区域()

If MsgBox("是否真的要清空数据?清除后将无法恢复", 1 + vbokNo) = vbOK Then

Range("A1:B10,A15:B25").ClearContents

End If

End Sub

返回光标所在行号

Sub 返回光标所在行号()

Range("A1") = Selection.Row

End Sub

VBA返回公式结果

Sub VBA返回公式结果()

x = Application.WorksheetFunction.Sum(Range("a2:a100"))

Range("B1") = x

End Sub

按照当前行A列的图片名称插入图片到H列

Sub 按照当前行A列的图片名称插入图片到H列()

AAA = Selection.Row

Range("H" & AAA).Select

Selection.RowHeight = 37 '指定行高

ActiveSheet.Pictures.Insert(ThisWorkbook.Path & "\" & Range("A" & Selection.Row) & ".JPG").Select

Selection.ShapeRange.LockAspectRatio = msoTrue

Selection.ShapeRange.Height = 84.75

Selection.ShapeRange.Width = 150.75

Selection.ShapeRange.Rotation = 0#

Selection.ShapeRange.ScaleWidth 0.73, msoFalse, msoScaleFromTopLeft

Selection.ShapeRange.ScaleHeight 0.73, msoFalse, msoScaleFromTopLeft

Selection.ShapeRange.ScaleHeight 0.24, msoFalse, msoScaleFromTopLeft

Selection.ShapeRange.ScaleHeight 2.5, msoFalse, msoScaleFromTopLeft

Range("H" & AAA).Select

End Sub

当前行下插入1行

Sub 当前行下插入1行()

Selection.Offset(1, 0).Insert

End Sub

取消指定行或列的隐藏

Sub 取消隐藏行()

Rows("3:5").Select

Selection.EntireRow.Hidden = False

End Sub

Sub 取消隐藏列()

Columns("C:F").Select

Selection.EntireColumn.Hidden = False

End Sub

复制单元格所在行

Sub 复制单元格所在行()

Selection.EntireRow.Copy

End Sub

复制单元格所在列

Sub 复制单元格所在列()

Selection.EntireColumn.Copy

End Sub

新建一个工作表

Sub 新建一个工作表()

Sheets.Add

End Sub

新建一个工作簿

Sub 新建一个工作簿()

Workbooks.Add

End Sub

选择多表为工作组

Sub 选择多表为工作组()

Dim Wks As Worksheet, shtCnt As Integer

Dim arr() As Variant, i As Integer, m As Integer, m1 As Integer, m2 As Integer

shtCnt = ThisWorkbook.Sheets.Count '取得工作表总数

ReDim arr(1 To shtCnt) '预定义数组

i = 0

m = 1 '循环的次数

m1 = 0 '找到起点循环的次数

m2 = 0 '找到终点循环的次数

For Each Wks In ThisWorkbook.Sheets '在所有工作表中循环

If Wks.Name = "A2" Then '工作组中第一个工作表名称

i = i + 1

arr(i) = Wks.Name '将工作表名称存进数组

m1 = m

End If

If Wks.Name Like "A7" Then '工作组中最后一个个工作表名称

i = i + 1

arr(i) = Wks.Name '将工作表名称存进数组

m2 = m

Exit For

End If

If i > 0 And m > m1 Then

i = i + 1

arr(i) = Wks.Name '将工作表名称存进数组

End If

m = m + 1

Next

If m2 > m1 Then '如果存在符合条件的工作表名称

ReDim Preserve arr(1 To i) '重定义数组

ThisWorkbook.Sheets(arr).Select '选中符合条件的所有工作表

End If

End Sub


控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言