编写vb代码,一个excel工作表有很多sheet,把所有sheet的第二列删除,然后把所有sheet的第一列插入到第三

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了编写vb代码,一个excel工作表有很多sheet,把所有sheet的第二列删除,然后把所有sheet的第一列插入到第三相关的知识,希望对你有一定的参考价值。

编写vb代码,一个excel工作表有很多sheet,把所有sheet的第二列删除,然后把所有sheet的第一列插入到第三列的前面。
如图:前

后:

希望大神帮帮我

参考技术A

到Excel中自定义一个宏,删除整列,插入一空列,再把A列复制过去,等等。然后查看一个宏代码应用到VB6中去。

我给你整好了:

Private Sub Command1_Click()
    Dim wkBook As Workbook
    Set wkBook = excel.Application.Workbooks.Open("C:\\Users\\Administrator\\Desktop\\Book1.xlsx")
    Dim st As Worksheet
    For Each st In wkBook.Sheets
        With st
            .Columns("B:B").Delete Shift:=xlToLeft
            .Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
            .Columns("A:A").Cut Destination:=.Columns("C:C")
            .Columns("A:A").Delete Shift:=xlToLeft
        End With
    Next
    wkBook.Save
    wkBook.Close
End Sub

别忘了,引用   Microsoft Excel  Object Library 库

参考技术B Sub aaa()

    For i = 1 To Sheets.Count

        With Sheets(i)

            .Columns(4).EntireColumn.Insert

            .Range("a:a").Copy [d1]

            .Columns("A:B").Delete Shift:=xlToLeft

        End With

    Next

End Sub

追问

请问下怎么从第二个sheet开始 后面每个sheet的 第二列都没有呢?

求大神帮帮 肯定加分!!谢谢了

本回答被提问者采纳
参考技术C 选择第一个表,按下shift键,然后选最后一个表则选择了所有的表格,操作当前表,把第二列,把第一列剪切后选中第三列插入剪切的单元格追问

恩恩 这个我知道 我只需要代码

关于VB中CreateObject 函数

我看到VB的MSDN中,有这样一段代码
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")
按理Excel应该是应用程序名,Sheet应该是类,但我在对象浏览器中,选择库为excel,在类中,可以看到有sheets,没有sheet,这样的话这条代码CreateObject("Excel.Sheet")岂不是有问题吗?因为excel中应该没有Sheet类,只有sheets类。但当我将这句代码Set ExcelSheet = CreateObject("Excel.Sheet")改为Set ExcelSheet = CreateObject("Excel.Sheets"),在调试时显示“实时错误429 ActiveX部件不能创建对象”

  1、CreateObject函数简介:创建并返回一个对 ActiveX 对象的引用。
  2、CreateObject函数语法 :CreateObject(class,[servername]) ;
  3、CreateObject参数简介 :
  class必需的;
  Variant (String). 要创建的应用程序名称和类;
  servername可选的;
  Variant (String). 要在其上创建对象的网络服务器名称。
  4、CreateObject函数应用 :
  每个支持自动化的应用程序都至少提供一种对象类型。例如,一个字处理应用程序可能会提供 Application 对象,Document 对象,以及 Toolbar 对象。 要创建 ActiveX 对象,只需将 CreateObject 返回的对象赋给一个对象变量: ’声明一个对象变量来存放该对象’的引用。Dim as Object 采用后期绑定方式。
  Dim ExcelSheet As Object
  Set ExcelSheet = CreateObject("Excel.Sheet")
参考技术A '声明一个对象变量来存放该对象
'的引用。Dim as Object 采用后期绑定方式。
Dim ExcelSheet As Object
Set ExcelSheet = CreateObject("Excel.Sheet")

是在createobject函数看到的吧,不过我怎么在对象浏览器中只能看到sheet,看不到sheets呢?本回答被提问者采纳

以上是关于编写vb代码,一个excel工作表有很多sheet,把所有sheet的第二列删除,然后把所有sheet的第一列插入到第三的主要内容,如果未能解决你的问题,请参考以下文章

excel 如何替换单元格引用工作簿名称,例如sheet1中有单元格=sheet2!B2,如何用VB全部替换为=sheet3!B2。

用VB如何高效读取EXCEL中所有的sheet名称

关于VB中CreateObject 函数

vb调用excel两个sheet。

VB有啥办法把多个Excel工作簿中的工作表名称改成默认的sheet1。

openpyxl