合計値を1セルずつ入れてきたいのですが、LEN関数で合計値の長さを求めると かえってくる数字が必ず4になります。(9999より大きくても、1000より小さくても4です。)
なぜでしょうか?
作成していたもの一部は以下になります。(足りていなかったら追記します。)
Dim aaa1,aaa2,kai,i1
aaa1=0
kai=1
Do While Cells(kai, 1).Value <> ""
aaa2=Cells(kai,1)
aaa1=aaa1+aaa2
Loop
Sheets(2).Activate
For i1 = 1 To Len(aaa1)
Cells(1, 15 - Len(aaa1)).Offset(0, i1).Value = Mid(aaa1, i1, 1)
Next i1
No.5ベストアンサー
- 回答日時:
そもそも、掲示板の質問にはないもので、質問するのはやめましょう。
>かえってくる数字が必ず4になります。(9999より大きくても、1000より小さくても4です。)
それは基本的なことです。Long型の変数を、Lenで調べれば、必ず4が返ります。
文字長を測るなら、文字にしなければできません。
Sub Test_Len()
Dim a As Integer
Dim b As Long
b = 123456789
a = Len(b) '必ず4になります
End Sub
No.4
- 回答日時:
>>実際はkai=kai+1入っています。
このソース部分だけを実行した限りでは、「必ず4」と言う事は起きません。
途中のロジックでaaa1を書き換えてるか、1列目の書式が特殊か、どちらかでは無いですか?
No.3
- 回答日時:
すでに答えは出ていますが、
kai = kai +1
これを、Do ~ Loop の間の、aaa2 = Cells(kai,1) の下に入れてあげればよいわけですね。
それはともかく、一つのセルに一つの数字を入れる不思議なコードだと思います。Excelカテゴリで同様の質問した人がいましたが、関数での質問でしたから、偶然の一致のようです。
私の知っているワザを使ってみました。
もう少し、検討の余地があるかもしれません。
'//
Sub Test2()
Dim Rng As Range
Dim Ans As Variant
Dim strVal As Variant
Dim i As Long, j As Long
With Worksheets("Sheet1")
Set Rng = .Range("A1", .Cells(Rows.Count, 1).End(xlUp))
End With
Ans = Application.Sum(Rng) 'この下にエラーチェックを加えることが可能
strVal = Format(Ans, String(14, "@")) '右詰め
With Worksheets("Sheet2")
For i = 1 To 14
j = .Cells(Rows.Count, 15).End(xlUp).Row + 1 '行の増加
.Cells(j, 1).Offset(, i).Value = Mid(strVal, i, 1)
Next i
End With
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- タブレット リカバリ用のUSBメモリ。 6 2022/10/24 15:19
- Visual Basic(VBA) 複数csvを横に追加していくマクロについて 2 2023/04/25 09:19
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) ワークシートごとに計算結果 2 2022/04/30 22:00
- 実用・教育 その著者まで亡くなられたのですか? 2 2022/07/30 17:55
- その他(家族・家庭) 幼い2人の子は、孤児になるのでしょうか?? 1 2022/07/31 15:01
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- 政治 佐渡金山の推薦書不備に怒りの声……こういうのに、統一教会の意向を受けた売国議員が暗躍してませんか? 2 2022/07/31 19:18
- Excel(エクセル) VBAのoffsetの動き方について教えてください 3 2022/11/25 23:36
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
指数関数近似を行うプログラム...
-
あああ..ああい..ああう とい...
-
VBAにて『元に戻すボタン』を作...
-
Excelで、あるセルの値に応じて...
-
Excel UserForm の表示位置
-
VBAを使って検索したセルをコピ...
-
特定の文字がある行以外を削除...
-
excelのデータで色つき行の抽出...
-
B列の最終行までA列をオート...
-
エクセルVBA 配列からセルに「...
-
Cellsのかっこの中はどっちが行...
-
VBAマクロ実行時エラーの修正に...
-
エクセルの合計を自動で表示さ...
-
マクロのコマンドボタン《Activ...
-
VBA シートをコピーする際に Co...
-
マクロの「SaveAs」でエラーが...
-
エクセルで離れた列を選択して...
-
EXCEL VBA 文中の書式ごと複写...
-
VBA 別ブックからの転記の高速...
-
【ExcelVBA】zip圧縮されたCSV...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
あああ..ああい..ああう とい...
-
VBAにて『元に戻すボタン』を作...
-
select caseの入れ子
-
VBAバーコード照合 バーコード...
-
xlookup関数の引数を利用して検...
-
vbs 文字位置を中央に
-
エクセルで選択したセルがディ...
-
スペース区切りのAND検索
-
ASPでバイナリ(ビッグエンディ...
-
半透明ブラシ重ね塗りのアルゴ...
-
エクセルで特定の文字列が入っ...
-
VBAマクロ実行時エラーの修正に...
-
マクロの「SaveAs」でエラーが...
-
VBA シートをコピーする際に Co...
-
エクセル マクロ オートフィ...
-
【Excel関数】UNIQUE関数で"0"...
-
エクセルで離れた列を選択して...
-
Worksheets メソッドは失敗しま...
-
VLOOKUPの列番号の最大は?
-
Excelで、あるセルの値に応じて...
おすすめ情報
すみません(TT)
kaiを増やすのを 書き忘れていました。
実際はkai=kai+1入っています。