我对在Excel中编写宏非常陌生,并且做了很多工作以尝试解决我的问题,但是我还没有找到一种可行的解决方案。
我正在尝试编写宏以执行以下操作:
我正在尝试根据列标题从工作表1的工作表1中复制数据(例如,我想复制列名“排序”下的所有数据)。此行中数据的行数可能会增加/减少。然后,我想将此数据粘贴到工作表2的工作表2中,列名称为“名称”。可以在两个工作簿中添加/删除列,这就是为什么我要基于列名而不是列号编写要复制的宏的原因。
我一直在使用下面的代码,我曾尝试根据网上发现的类似但略有不同的请求将这些代码放在一起,但是当我运行宏时,什么也没发生-我已经在工作簿2中编写了宏它只是打开工作簿1。
[如果有人看到我的代码有问题或提出其他建议,我将非常感谢您的帮助。谢谢!!
Sub CopyProjectName()
Dim CurrentWS As Worksheet
Set CurrentWS = ActiveSheet
Dim SourceWS As Worksheet
Set SourceWS = Workbooks("Workbook1.xlsx").Worksheets("Sheet1")
Dim SourceHeaderRow As Integer: SourceHeaderRow = 1
Dim SourceCell As Range, sRange As Range, Rng As Range
Dim TargetWS As Worksheet
Set TargetWS = Workbooks("Workbook2.xlsm").Worksheets("Sheet2")
Dim TargetHeader As Range
Set TargetHeader = TargetWS.Range("A1:AX1")
Dim RealLastRow As Long
Dim SourceCol As Integer
Range("B2").Select
SourceWS.Activate
LastCol = Sheets("Sheet1").Cells(1, Columns.Count).End(xlToLeft).Column
Set sRange = Sheets("Sheet1").Range("A1", Cells(1, LastCol))
With sRange
Set Rng = .Find(What:="Sort", _
After:=.Cells(1), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious, _
MatchCase:=False)
If Not Rng Is Nothing Then
LastRow = Sheets("Sheet1").Cells(Rows.Count, Rng.Column).End(xlUp).Row
Sheets("Sheet1").Range(Rng, Cells(LastRow, Rng.Column)).Copy
TargetWS.Activate
Sheets("Sheet2").Range("B1").Paste
End If
End With
End Sub
我对在Excel中编写宏非常陌生,并且做了很多尝试来解决我的问题,但是我还没有找到一种可行的解决方案。我正在尝试编写一个宏来执行...
Workbook1.xlsx
和Workbook2.xlsm
必须在下面的代码中打开