VBエディタ内のモジュールに入れ、このコードを(AltキーF11)
Function myFormat(r As Range) As String
myFormat = r.NumberFormat
End Function
セル内に式=myFormat(A1)
を使用すると、セルのフォーマットが文字列としてA1
になります。以下
は、すべてのVBAソリューションです:
は今、所望の細胞に
=TRIM(SUBSTITUTE(RIGHT(myFormat(A1), LEN(myFormat(A1)) - FIND("""",myFormat(A1),1)),"""",""))
これは望ましい結果
を更新あなたを与える必要があり、この式を置きます。あなたの要件ごとmyRange
とoutputRange
Sub runThis()
Dim myRange As Range
Set myRange = ThisWorkbook.Sheets("Sheet1").Range("A1:A3") 'Change this as per your requirement
Dim outputRange As Range
Set outputRange = ThisWorkbook.Sheets("Sheet1").Range("F1") 'Change this as per your requirement
Dim s As String
For i = 1 To myRange.Rows.Count
s = myRange(i, 1).NumberFormat
s = Right(s, Len(s) - WorksheetFunction.Find("""", s, 1))
s = Trim(WorksheetFunction.Substitute(s, """", ""))
outputRange.Offset(i - 1, 0) = s
Next i
End Sub
@Ralphを変更する必要があり、私は彼が列内のテキストとして書式を取得したいと思います。フォーマットをコピーしない。それはおそらく重複していません。 – nightcrawler23
はい、それは似ているようです。私はvbaコードを使用していません。私はこれを行う必要があることを説明することができます。または、これはどのような方法でもセル値ですか? –
ああ、その場合、おそらく '= CELL(" format "、A1)'を探しているでしょうか?それが助けにならない場合は、VBAコードを書く必要があります(これはExcel式のみでは実現できないためです)。 VBAコードにはループと '.NumberFormat'が含まれます。 – Ralph