Advertisement
Guest User

Untitled

a guest
Jun 18th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.38 KB | None | 0 0
  1. Date
  2. Name
  3. Amount Owing
  4. Balance
  5.  
  6. Sub DeleteSelectedColumns()
  7. Dim currentColumn As Integer
  8. Dim columnHeading As String
  9.  
  10. For currentColumn = ActiveSheet.UsedRange.Columns.Count To 1 Step -1
  11. columnHeading = ActiveSheet.UsedRange.Cells(1, currentColumn).Value
  12.  
  13. 'Check whether to preserve the column
  14. Select Case columnHeading
  15. 'Insert name of columns to preserve
  16. Case "Date", "Name", "Amount Owing", "Balance"
  17. 'Do nothing
  18. Case Else
  19. 'Delete the column
  20. ActiveSheet.Columns(currentColumn).Delete
  21. End Select
  22. Next
  23. End Sub
  24.  
  25. Sub DeleteSelectedColumns()
  26.  
  27. Dim ws As Worksheet
  28. Dim rDel As Range
  29. Dim HeaderCell As Range
  30. Dim sKeepHeaders As String
  31. Dim sDelimiter as String
  32.  
  33. sDelmiter = ":"
  34. sKeepHeaders = Join(Array("Date", "Name", "Amount Owing", "Balance"), sDelimiter)
  35.  
  36. For Each ws In ActiveWorkbook.Sheets
  37. Set rDel = Nothing
  38. For Each HeaderCell In ws.Range("A1", ws.Cells(1, ws.Columns.Count).End(xlToLeft)).Cells
  39. If InStr(1, sDelimiter & sKeepHeaders & sDelimiter, sDelimiter & HeaderCell.Value & sDelimiter, vbTextCompare) = 0 Then
  40. If Not rDel Is Nothing Then Set rDel = Union(rDel, HeaderCell) Else Set rDel = HeaderCell
  41. End If
  42. Next HeaderCell
  43. If Not rDel Is Nothing Then rDel.EntireColumn.Delete
  44. Next ws
  45.  
  46. End Sub
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement