1

私は今、数学のドリル プログラムに取り組んでいます。以前、これと同様の質問をしたことがありますが、適切なサポートが得られませんでした。そこで、この問題をもっと徹底的に調べてみることにしました。興味深いことを見つけました。

始める前に、予選をやりたいと思います。はい、私は Microsoft Excel 2007 を使用しています。いいえ、これはあなたにとってはうまくいくかもしれませんが、私にとってはそうではありません。

これで、次の処理が完了しました。

私が抱えている問題は、私が持っているときです

ActiveCell.NumberFormat = "# ?/?"

私のコードでは、Excelの中心線が左にシフトします(これが私が説明する唯一の方法です)。

つまり、右揃えの場合は中央に表示され、中央揃えの場合はほぼ左揃えになり、左揃えと中央揃えの違いはほとんどありません。

私が持っている場合

ActiveCell.NumberFormat = "?/?"

その後、上記の問題はありません。

このセクションのコード全体は次のとおりです。

Sub test()
  Sheets("sheet1").Select
  Range("a1").Select
  For i = 1 To 10
    ActiveCell.NumberFormat = "# ?/?"
    With ActiveCell
        .Locked = False
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlBottom
    End With
    ActiveCell.Value = 33
    ActiveCell.Offset(0, 1).Select
  Next i
End Sub

これが起こっている理由についての提案や理由は大歓迎です。理想的には、ユーザーが混合数を確認できる必要があります。

詳細については、各セルを手動で分数に変更すると、正常に機能します。それはExcelがそれを行うときだけです。

4

3 に答える 3

1

固定幅フォントの列で表示したときに小数部分が整列するように、数値を整列しています。

3 1/3
2    
1 3/4
3 2/7
2 2/3
3 1/2
6   
于 2009-12-16T06:05:33.367 に答える
1

編集 (2)

Excel 2007 でも試してみましたが、手動またはスクリプトで NumberFormat を変更しても違いはありません。

とにかく、次のスクリプトはあなたが望むことをするはずです。ワークシートのソースに追加します。

値が変更されるたびにトリガーされます。次に、正しい列が影響を受けているかどうかを確認し (私の場合は 1)、数値を分数でフォーマットしようとしますが、その結果として分数がない場合は、分数なしのフォーマットを使用します。

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim cell As Range
    For Each cell In Target.Cells
        If cell.Column = 1 Then
            If IsNumeric(cell.value) Then
                cell.NumberFormat = "# ?/?"
                cell.Calculate
                If InStr(1, cell.Text, "/") = 0 Then
                    cell.NumberFormat = "#"
                End If
            End If
        End If
    Next cell
End Sub

元の投稿

私はExcel 2003でしか試していませんが、手動で設定するかVBAで設定するかに違いはありません。コードが手動で行うのとまったく同じように動作することを確認してください。手動で行うことのマクロを記録し、それを別のセルで実行するだけです。

シフトの理由は、Excel が分数のためにそのスペースを予約しているためです。

 1,2 -> |      1 1/5|
 1   -> |      1    |
33   -> |     33    |
33,5 -> |     33 1/2|

次のものが欲しいですか?

 1,2 -> |      1 1/5|
 1   -> |          1|
33   -> |         33|
33,5 -> |     33 1/2|

なぜその形式でそれを好むのですか?

于 2009-12-16T05:56:20.037 に答える
0

実際には、すべてを中央に配置するには、条件付き書式の方がはるかにうまく機能します。私のセットアップについては、下の画像を参照してください。

分数の書式規則

于 2010-07-22T19:35:31.103 に答える