小编Phi*_*nks的帖子

根据标题名称移动列

我有一个将列重新排列为特定顺序的宏。

Sub ArrangeColumns()

' ArrangeColumns Macro

    Columns("C:C").Select
    Application.CutCopyMode = False
    Selection.Cut
    Columns("A:A").Select
    Selection.Insert Shift:=xlToRight
    Columns("K:K").Select
    Selection.Cut
    Columns("B:B").Select
    Selection.Insert Shift:=xlToRight
    Columns("H:H").Select
    Selection.Cut
    Columns("G:G").Select
    Selection.Insert Shift:=xlToRight
    Columns("J:J").Select
    Selection.Cut
    Columns("H:H").Select
    Selection.Insert Shift:=xlToRight
    Columns("J:J").Select
    Selection.Cut
    Columns("I:I").Select
    Selection.Insert Shift:=xlToRight
    Columns("K:K").Select
    Selection.Cut
    Columns("J:J").Select
    Selection.Insert Shift:=xlToRight
    Range("P11").Select
End Sub
Run Code Online (Sandbox Code Playgroud)

这不再有效,因为无法再保证原始数据的列按特定顺序排列。

有没有办法重写上面的代码(是的,它是由“记录宏”创建的)以"Columns("C:C")", Columns("A:A")"用它们的列标题名称替换行等?

更好的是有没有更好的方法来解决这个问题?

excel vba

2
推荐指数
2
解决办法
6964
查看次数

VBProject.VBComponents(wsTarget.CodeName).Name = 代码每次都失败。为什么?

我有一个包含大约 20 个 subs 的小应用程序,它运行完美......每隔一段时间。

它在子 ImportData 中失败,这是我第一次向新创建的工作表添加代码名称。在以下行: ThisWorkbook.VBProject.VBComponents(wsTarget.CodeName).Name = "Customers"

下面的代码包含三个可以重新创建问题的子程序。重要说明:我可以连续多次运行子 ImportData 没有任何问题,但如果我连续两次调用子“Sync()”,它会在第二次尝试时失败,但在第三次尝试时工作正常,依此类推(也许它不喜欢奇数..)

关于为什么会发生这种情况的任何想法将不胜感激。

FYT:我在 Excel for Mac 中运行此代码

Public LastRow As Long
Private wks As Worksheet

Sub Sync()
     Call ImportData
     Call SyncBoth
End Sub

Public Sub ImportData()
'++++++++++++++++++++++++++++++++++++++++++++++++++++++
'+++++ 1. ImportData will allow user to select file to import data from
'+++++ 2. Copy both the Customers and Vendors data to their respective sheets
'++++++++++++++++++++++++++++++++++++++++++++++++++++++
     Dim wsSource As Worksheet
     Dim wsTarget As Worksheet
     Dim LastRow As Long
     Dim …
Run Code Online (Sandbox Code Playgroud)

excel vba

2
推荐指数
1
解决办法
129
查看次数

标签 统计

excel ×2

vba ×2