excel 宏(VB)实现复制一列并按第二列的单元格长度排序

Sub 复制排序()

    Columns("B:B").Select
    Selection.Copy
    Columns("C:C").Select
    Selection.Insert Shift:=xlToRight
    Range("E1").Select
    Application.CutCopyMode = False
    

'排序的话应该有更好的方式,直接按单元格长度排序,没时间弄

    Dim t As Double


    t = ActiveSheet.[A1048576].End(xlUp).Row '针对EXCEL2010
    
    
    ActiveCell.FormulaR1C1 = "=LEN(RC[-2])"
    Range("E1").Select
    Selection.Copy
    Range(Cells(t, 5), Cells(1, 5)).Select
    ActiveSheet.Paste
    Application.CutCopyMode = False
    
        ActiveSheet.Sort.SortFields.Clear
    ActiveSheet.Sort.SortFields.Add Key:=Range("E1"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveSheet.Sort
        .SetRange Range(Cells(1, 1), Cells(t, 5))
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    ActiveWorkbook.Save
    
    
End Sub



### 回答1: 我可以为您提供一些指导:首先,请确保您的Excel文件中有一个表,并将所有图片插入到该表中;其次,请使用VB(Visual Basic)编程语言编写程序,将这些图片移动到第一行第一列单元格;最后,执行程序以将图片移动到指定单元格。 ### 回答2: 使用VB处理Excel中的图片并将其放置在第一行第一列单元格,可以使用以下步骤: 1. 引用Excel对象库:在VB编程环境中,首先需要引用Excel对象库。在“项目”菜单下选择“引用”,然后在“COM”选项卡中找到Microsoft Excel对象库,并勾选引用该库。 2. 创建Excel应用程序对象:使用以下代码创建一个Excel应用程序对象和一个Workbook对象。 ``` Dim xlApp As New Excel.Application Dim xlWorkbook As Excel.Workbook Set xlWorkbook = xlApp.Workbooks.Open("YourExcelFile.xlsx") '替换为你的Excel文件路径 ``` 3. 处理每个表格中的图片:使用以下代码来循环处理每个工作表中的图片。 ``` Dim xlWorksheet As Excel.Worksheet Dim xlShape As Excel.Shape For Each xlWorksheet In xlWorkbook.Worksheets For Each xlShape In xlWorksheet.Shapes If xlShape.Type = msoPicture Then xlShape.CopyPicture xlWorksheet.Cells(1, 1).PasteSpecial Exit For '如果需要将同一个工作表中的多个图片放置在第一行第一列单元格,可以移除Exit For,并将图片放置在不同的单元格中 End If Next xlShape '如果需要处理全部图片,而不是每个表格中的图片,可以移除Exit For并将上述代码移动到这个位置 Next xlWorksheet ``` 4. 保存和关闭Excel文件:使用以下代码保存并关闭Excel文件。 ``` xlWorkbook.Save xlWorkbook.Close xlApp.Quit Set xlWorkbook = Nothing Set xlApp = Nothing ``` 通过这些步骤,你可以使用VB处理Excel中所有表中的图片,并将它们放置在第一行第一列单元格中。 ### 回答3: 使用VB处理Excel中的图片,首先需要引用Excel的对象库,然后按照以下步骤进行操作: 1. 打开Excel文件:使用Workbook对象打开指定的Excel文件。 2. 遍历所有表格:使用Worksheets对象遍历所有的工作表。 3. 遍历所有图片:使用Shapes对象遍历当前工作表中的所有图片。 4. 将图片移动到第一行第一列单元格:使用Top和Left属性设置图片的位置,将其移动到第一行第一列单元格中。 5. 保存并关闭Excel文件:使用Workbook对象保存并关闭Excel文件。 下面是代码示例: ```vb Sub MovePicturesToCell() Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") ' 打开Excel文件 Dim xlBook As Object Set xlBook = xlApp.Workbooks.Open("C:\Path\to\your\ExcelFile.xlsx") ' 遍历所有工作表 Dim xlSheet As Object For Each xlSheet In xlBook.Worksheets ' 遍历当前工作表中的所有图片 Dim xlShapes As Object Set xlShapes = xlSheet.Shapes Dim xlShape As Object For Each xlShape In xlShapes ' 将图片移动到第一行第一列单元格 xlShape.Top = xlSheet.Cells(1, 1).Top xlShape.Left = xlSheet.Cells(1, 1).Left Next xlShape Next xlSheet ' 保存并关闭Excel文件 xlBook.Save xlBook.Close xlApp.Quit Set xlShape = Nothing Set xlShapes = Nothing Set xlSheet = Nothing Set xlBook = Nothing Set xlApp = Nothing End Sub ``` 使用以上代码,可以将Excel文件中所有表中的图片移动到第一行第一列单元格中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值