我正在尋找一種在作業表之間復制(添加新)列的方式或方法。
讓我舉例說明:
作業表:模板

表:學生

最初我復制“模板”并重命名它。但是,當向“模板”添加其他任務時,我想更新“學生”,因為我已經更改了 B2:D4 范圍內的內容。因此,復制/粘貼整個范圍不是一種選擇。
解決這個問題的最佳方法是什么?首先檢查目標作業表中的 A 行是否有值,如果沒有則復制/粘貼該列?
非常感謝朝著正確的方向推進(或一些開始的代碼)。
uj5u.com熱心網友回復:
您可以通過回圈真正的列標題來實作這一點,因為它們位于第一行并且所有選項卡都已適當命名:
Sub AddTask()
With Application
.ScreenUpdating = False
.DisplayAlerts = False
.AskToUpdateLinks = False
.DisplayStatusBar = True
End With
Dim wb As Workbook: Set wb = ThisWorkbook
With wb
Dim LastTemplateCol As Long: LastTemplateCol = .Worksheets("Template").Cells(1, Columns.Count).End(xlToLeft).Column
For i = 2 To LastTemplateCol
Dim TempTask As String: TempTask = .Worksheets("Template").Cells(1, i).Value
Dim LastStudentCol As Long: LastStudentCol = .Worksheets("Student").Cells(1, Columns.Count).End(xlToLeft).Column
For t = 2 To LastStudentCol
Dim StudTask As String: StudTask = .Worksheets("Student").Cells(1, t).Value
Dim Exists As Boolean: Exists = False
If TempTask = StudTask Then
Exists = True
GoTo taskloop:
Else
GoTo studloop:
End If
studloop:
Next t
If Exists = False Then
.Worksheets("Template").Cells(1, i).Columns.EntireColumn.Copy
.Worksheets("Student").Cells(1, LastStudentCol 1).PasteSpecial
End If
taskloop:
Next i
End With
Application.CutCopyMode = False
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/449935.html
