VBA를 사용하여 Excel에서 셀 속성 목록을 가져올 수 있습니까? 셀이 굵게, 밑줄, 기울임 꼴 등으로되어 있는지 확인하고 싶습니다. 지금까지 인터넷에서 찾은 모든 제안은 값이 참인지 확인하도록 제안합니다. 예를 들어 아래 코드에서 셀이 굵게 표시되는지 확인하고 있습니다.
Sub format_cells()
Dim ws As Worksheet
Set ws = Sheets("Uploads")
rc = ws.UsedRange.Rows.Count
For i = 2 To rc
If ws.Cells(i, 10).Font.Bold = True Then
Debug.Print "Pass"
End If
Next
End Sub
모든 가능성을 확인하기 위해 조건문이나 케이스 문을 만들 필요는 없습니다. 차라리 코드 한 줄로 속성을 얻을 수 있기를 바랍니다.
예를 들어 Python에서는 Openpyxl 라이브러리를 사용하여이를 수행 할 수 있습니다.
from openpyxl import load_workbook
wb = load_workbook("Book1.xlsx")
ws = wb["Uploads"]
ex = ws.cell(2,10)
print(ex.font)
그런 다음 다음 출력을 얻습니다.
<openpyxl.styles.fonts.Font object>
Parameters:
name='Calibri', charset=None, family=2.0, b=False, i=False, strike=None, outline=None, shadow=None, condense=None, color=<openpyxl.styles.colors.Color object>
Parameters:
rgb=None, indexed=None, auto=None, theme=1, tint=0.0, type='theme', extend=None, sz=11.0, u=None, vertAlign=None, scheme='minor'
하지만 VBA에서 시도하면 "런타임 오류 '424'개체가 필요합니다."가 표시됩니다.
Sub test()
Dim ws As Worksheet
Set ws = Sheets("Uploads")
ex = ws.Range("J3")
Debug.Print ex.Font
End Sub
감사합니다.
예를 들면 :
Debug.Print FormatString(Range("A1"))
Function FormatString(c As Range)
Dim f, e
With c
For Each e In Array("Bold", "Italic", "Underline", "Color", _
"ColorIndex", "Superscript", "subscript")
f = f & e & "=" & CallByName(.Font, e, VbGet) & ";"
Next e
End With
FormatString = f
End Function
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다