Sub test()
Sheet1.Select
Sheets(1).Select
Sheets("1月").Select
End Sub
① 注意一月是有双引号的,如果没有引号是会错误的
Sub test1()
For i = 1 To 100
Sheets.Add after:=Sheets(Sheets.Count),
Sheets(Sheets.Count).Name="i"
next
End Sub
① 容易出错点,after后面忘记:和=
② name后面不用加:直接写=就好
③ Sheets(Sheets.Count)表示在最后那个表格后面加表,如果想在3月这个表格后面加10张表,不能直接写after:=sheets(“三月”),因为始终是在最后一张表后面,不是三月这张表后,加了一张表后三月就不是最后那张表了
建100张表,sheets.add .count:=100 这个写法可以借鉴。
取表名
Sub test ()
Dim i As Integer
For i = 2 To Sheets.Count
Range("a" & i - 1) =Sheets(i).Name
Next
End Sub
注意划线部分,是sheets(i)不是 sheets(sheets.count),如果是后者就全部会是提取最后那个表格名称
特别注意事项,如果写 sheet1.Range("a"& i - 1) = Sheets(i).Name(因为是在表格1里面汇总表名,会出现一个情况,就是不会出错,但是sheet1里面提取不了表名,但是同样的操作在sheet2里面可以提取表名
上面这个问题还待探究,因为后来去复制了这个代码,加了一个sheet(1),可以运行,而且只能在sheet(1)里面运行,但是回过头去,已经把前面那个不能运行的表格删掉了,所以还没有探究出原因。
建表1到31,并且命名
Sub test()
Dim i As Integer
For i = 1 To 31
Sheet1.Copyafter:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "5月" &
i & "日"
Sheets(Sheets.Count).Range("e5") = "2016-5-" & i
Next
End Sub
单独是sheet1.copy会单独新建一个工作簿,所以这是一个把每个工作表单独拆分的途径
Sub test()
Dim i As Integer
For i = 2 To Sheets.Count
Sheet1.Range("b" & i + 8) = Sheets(i).Range("e5")
Sheet1.Range("c" & i + 8) = Sheets(i).Range("e6")
Sheet1.Range("d" & i + 8) = Sheets(i).Range("e44")
Next
End Sub
E5 e6 e44都需要标点符号
删除多表相同的内容
Sub test()
Dim i As Integer
Dim j As Integer
For j = 1 To Sheets.Count
If Sheets(j).Range("e" & i) = "男" Then
Sheets(j).Range("f"& i) = "先生"
Else
Sheets(j).Range("f" & i) = "女士"
End If
If Sheets(j).Range("b" & i) = "理工" Then
Sheets(j).Range("c" & i) = "LG"
ElseIf Sheets(j).Range("b" & i) = "文科" Then
Sheets(j).Range("c" & i) = "WK"
Else
Sheets(j).Range("c" & i) = "CJ"
End If
If Sheets(j).Range("d" & i) = "" Then
Sheets(j).Range("d" & i).EntireRow.Delete
End If
Next
Next
End Sub
注意是For i = 100 To 2 Step -1 ,不是Fori = 2 To 100 Step -1
collections",v
网友评论