Finne Kolonner av en viss bredde

October 23  by Eliza

Howard har et behov for å oppdage alle kolonner i et regneark som er en gitt bredde. For eksempel, han trenger å vite hvilke kolonner har en bredde på 3,6.

Dette kan gjøres ved hjelp av en makro. En av egenskapene makroen kan få tilgang er bredden på hver kolonne. Dette betyr at du kan gå gjennom kolonnene og sjekk disse bredder mot ønsket bredde (3,6) på følgende måte:

Sub ListColumns ()
Dim dColWidth Som Double
Dim sMsg As String
Dim x As Integer

dColWidth = 3.6
sMsg = ""
For x = 1 Til ActiveSheet.Columns.Count
Hvis Kolonner (x) .ColumnWidth = dColWidth Deretter
sMsg = sMsg & vbCrLf & x
End If
Neste
Hvis sMsg = "" Then
sMsg = "Det er ingen kolonner med" & _
vbCrLf og "bredde" og dColWidth
Else
sMsg = "Følgende kolonner ha" & _
vbCrLf og "bredde" og dColWidth & _
":" & VbCrLf & sMsg
End If
MsgBox sMsg
End Sub

Denne makroen viser en meldingsboks som viser kolonnene som samsvarer med ønsket bredde. Makro kan gjøres mer robust med noen enkle endringer. For eksempel, ber følgende eksempel brukeren for kolonnebredde, teller antall kamper, og selv kompenserer hvis regnearket bruker R1C1 henvisning modus.

Sub Find_ColumnWidth ()
Dim Col As Integer 'Kolonne (loop variabel)
Dim ColsFound som heltall 'Kolonner Funnet Count
Dim Desired_Width Som Double 'Kolonnebredde å finne
Dim OutStr As String 'Output String
Dim Tittel As String 'MsgBox Tittel
Dim jeg As Integer
Dim S As String

"Finn ut kolonnebredde ønsket
S = InputBox ("Skriv ColumnWidth å finne?", _
"Finn ColumnWidth på" & ActiveSheet.Name)
Desired_Width = Val (S)
Hvis Desired_Width = 0 Then Exit Sub

'Initial Kolonner Funnet Count og Output String
ColsFound = 0
OutStr = ""

For Col = 1 Til ActiveSheet.Columns.Count
If Kolonner (Col) .ColumnWidth = Desired_Width Deretter
ColsFound = ColsFound + 1

Hvis Application.ReferenceStyle = 1 Da
"Bruk" A1 "format
S = Cells (1, Col) .Address (ReferenceStyle: = xlA1)
S = Mid (S, 2, Len (S) - 3)
Else
"Bruk" R1C1 "format
S = Trim (Str (Col))
End If
OutStr = OutStr & S & vbCrLf
End If
Neste

'Konstruer MsgBox Tittel streng
Title = "width =" & Desired_Width _
& "På" & ColsFound & "kolonnen" _
& Venstre ("s", - (ColsFound> 1)) og ""

Hvis ColsFound = 0 Then
OutStr = "Ingen treff"
End If

MsgBox OutStr, vbOKOnly, Tittel
End Sub

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (3827) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Finne Kolonner av en viss bredde.