整理工资表时:有如下工作
- 删除后面我工作时辅助的列,它是辅助的,没有必要下发
- 删除后面的行,它也是辅助的,没有必要下发
问题是:从那一列开始到那一列要删除,从那一行开始到那一列要删除
--------【思路方法】--------
列可以查找到“备注”所在的列,后面的都不要了
列可以查找到“合计”所在的行,后面的都不要了
--------【开始工作】--------
思路开始:例:
用columns(“26:40”).delete
Rows(“2474:2484”).deleteShift:=xlToLeft
--------【出现问题】--------
行的删除可以啦,但列的删除出问题了columns(“26:40”).deleteShift:=xlUp
--------【学习】--------
通过百度查找问题:学习知识:
Part 1:多行删除
<1>通过Rows和Range两种方法都可以
<2>多行使用行号数字来表示,注意需将行号放入双引号中""
Sub 多行删除()
Set te = ThisWorkbook.Worksheets("示例")
'te.Rows("3:5").Delete Shift:=xlUp
te.Range("3:5").Delete Shift:=xlUp
End Sub
========================
Part 2:多列删除
<1>通过Columns和Range两种方法都可以
<2>列号使用字母表示,注意需将行号放入双引号中""
<3>当使用数字表示列号时,报错
Sub 多列删除()
Set te = ThisWorkbook.Worksheets("示例")
te.Columns("B:D").Delete Shift:=xlToLeft
' te.Range("B:D").Delete Shift:=xlToLeft
End Sub
========================
--------【解决方法】--------
可以先用列数字转化为列字母,再进行删除就可以
--------【知识点1】--------
Address属性的语法如下:
Range对象.Address(RowAbsolute, ColumnAbsolute,ReferenceStyle, External,RelativeTo)
说明:
所有参数均为可选项。
参数RowAbsolute设置为True,则返回的地址行部分为绝对引用。默认值为True。
参数ColumnAbsolute设置为True,则返回的地址的列部分为绝对引用。默认值为True。
参数ReferenceStyle设置返回的地址的引用样式,可以设置为xlA1(A1样式)或xlR1C1(R1C1样式)。默认值为xlA1。
参数External设置为True,返回的地址包含工作簿名和工作表名。设置为False,返回本地地址(即不带工作簿名和工作表名)。默认值为False。
如果参数RowAbsolute和ColumnAbsolute设置为False,参数ReferenceStyle设置为xlR1C
代码:
ActiveCell.Address
返回当前工作表中当前单元格的地址。
代码:
Selection.Address
返回当前工作表中所选区域的地址。
代码:
Range('A1').CurrentRegion.Address
返回当前工作表中单元格A1所在单元格区域的地址。
代码:
ActiveSheet.UsedRange.Address
返回当前工作表中已使用单元格区域的地址。
例子:
Set mc = sheets(1).Cells(1, 1)
mc.Address —— 返回"
mc.Address(0,0) —— 返回 "A1"
简单的说:
Address(0, 0) 相对引用
Address(1, 1) 绝对引用
Address(1, 0) 混合引用(相对列绝对行)
Address(0,1) 混合引用 (相对行绝对列)
【解决代码】字母=Replace(Cells(1, 数字).Address(False, False), "1", "")
解析:先用cells取得第一行第几列的地址的相对位置如:D1,再用replace把1替换为空就可以啦
问题延伸:如果知识列字母如何求列数字呢
我们可以取得“a1:字母1”范围的总列数count就是所要的列数啦
Sub in字母get数字()
' Dim a As String
a= InputBox(prompt:="请输入列字母")
If a <> "" Then
MsgBox Range("a1:" & a & "1").Count
‘取得这个范围的总列数就是我们要的列数字啦
Else
MsgBox "你没输入"
Exit Sub
End If
End Sub
--------【最后完成的代码】--------
--------【小结】--------
1.Find方法,2.多列多行删除,3.列数字与列字母互转