0
我有一些代碼,我通過複選框多次插入兩列(如果用戶單擊名爲Include_Weekends的框 - 在項目持續時間插入兩列)。如果項目持續10周,則創建一個聯盟,插入兩列10次,以計入所有10個週末。刪除用聯合插入的列
無論出於何種原因,我不能刪除插入的行(當用戶取消點擊框時)使用聯合,我不得不訴諸如我的示例中所示的循環。有沒有辦法一次刪除所有的列(爲了加速代碼,而循環刪除每個列而不是整體)。也許我使用的是糟糕的編碼習慣,因爲我對VBA w/excel還比較陌生,所以請原諒。
Private Sub Include_Weekends_Click()
Dim myWeekendUnion as Range
Dim iWeekCount as Integer '# of weeks in project
Dim iFirstColumn as Integer 'First column in schedule
Dim xyz as Integer
Dim abc as Integer
iWeekCount = 5 'as an example... although this is user defined.
If ThisWorkbook.Sheets("Sheet1").Include_Weekends.Value = True Then
Set myWeekendUnion = Union(Columns((iFirstColumn) + 5), Columns((iFirstColumn) + 6))
If iWeekCount > 1 Then
For xyz = 2 To iWeekCount
Set myWeekendUnion = Union(myWeekendUnion, Columns((iFirstColumn) + (5 * xyz)), Columns((iFirstColumn) + (5 * xyz) + 1))
Next xyz
End If
myWeekendUnion.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Else
abc = iFirstColumn + (iWeekCount * 7) - 1
For abc= abc To (iFirstColumnGantt + 6) Step -7
ThisWorkbook.Sheets("Sheet1").Columns(abc).Delete
ThisWorkbook.Sheets("Sheet1").Columns(abc - 1).Delete
Next abc
End If
End Sub
有沒有辦法使用工會都插入和刪除列? –
聯盟只定義設置爲變量的範圍。當你有範圍時,你可以做任何事情(即刪除列或行)。但我最大的缺點是必須先插入列,然後使用Union將這些單元格設置爲您的範圍。讓我知道是否需要進一步的解釋。問候。 – nbayly
對不起,如果我不理解......這是否意味着我應該通過我在代碼中的反向循環重置聯合,然後使用我通過該循環後提供的代碼? –