美文网首页
1 工作表

1 工作表

作者: 沈婷_bbf1 | 来源:发表于2018-05-26 09:22 被阅读5次

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

    For i = 100To 2 Step -1   

       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

相关文章

网友评论

      本文标题:1 工作表

      本文链接:https://www.haomeiwen.com/subject/flnpjftx.html