我有一个将列重新排列为特定顺序的宏。
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")"用它们的列标题名称替换行等?
更好的是有没有更好的方法来解决这个问题?
我有一个包含大约 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)