計算式が一部ミスっていまして、計算式を修正したいのですが、中々上手くいきません。結果は全部"0"で返ってきます。
ソースは以下になります。
Sub 全て修正()
Dim ws As Worksheet
k = 1
For Each ws In ActiveWorkbook.Sheets
ws.Range("G15:G32,G36:G53,G57:G74") = F15 * 3 / 256
k = k + 1
Next
End Sub
計算式は 『 F15 * 3 / 256 』 となのですが、
F15 では関数処理をしており、更に元データは以下のような関数処理をそれぞれ行っている状態です。
C列 D列 E列 F列
データ LIGHT() LEFT() HEX2DEC()
F50A0000000281 000281 0002 2
こんな場合はどんな方法で処理すればよろしいですか?
アドバイスお願い致します。
No.3ベストアンサー
- 回答日時:
(1)エクセルVBAでは数式はRange(1つのセル).Formula="=A1+1"のように、具体的(絶対的)に
A1のようにいれます。
Range(2つ以上のセル)Formula=(何かの表現)も出来る。
値の場合
Sub test01()
Range("A1: A5") = "abc"
End Sub
は可能。
式のな場合は
Sub test01()
Range("A1: A5") = "=B1+1"
End Sub
でA2には=B2+1のように変化させてくれる。
Sub test01()
Range("A1: A5,A10:A15") = "=B1+1"
End Sub
の場合はA1:A5、A10:A15について、正しく式を変化させてくれる。
以上で複数セルへの同型の式の一度でセットと、セル変化
がOKであることをチェックしました。
>F15 では関数処理をしており、更に元データは以下のような関数処理をそれぞれ行っている状態です。
使っているセルの値が、直接入力されたものでの、関数で
計算されたものでも関係ありません。関数でF15と言うときのF15はそのセルの「値」だけを問題にしてます。
○本件ws.Range("G15:G32,G36:G53,G57:G74") = F15 * 3 / 256
とありますが、
(1)Formulaがない
(2)関数式が””で囲まれていない
が気になりますが、問題ではないでしょうか。
ご指摘されている通りでした。
(2)関数式が””で囲まれていない → ””で囲む事により、 結果が得られるようになりました。
アドバイスありがとうございましたm(_ _)m
No.4
- 回答日時:
こう言う意味?
ws.Range("G15:G32,G36:G53,G57:G74") = F15 * 3 / 256
↓
ws.Range("G15:G32,G36:G53,G57:G74") = "=F15 * 3 / 256"
あと、変数k は意味をなしてませんね。
>あと、変数k は意味をなしてませんね。
ご指摘ありがとございます。
For文と変数の使用がまだまだ使いこなせて無いようです…。
もう少しがんばってVBA使いこなせるよう成りたいですね。
アドバイスありがとうございました。
No.1
- 回答日時:
Excelのセルの名前とVBAで使用できる変数がごっちゃになっているのではないでしょうか?
VBAの中で何の定義もなしにいきなり
F15を登場させたのがまずいのではないでしょうか。
すなわち、F15はVBA上では何にも入っていないので0が帰ってくるのではないでしょうか。
ws.Range("F15").value * 3 / 256
などとやってみてはいかがでしょう?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Excel(エクセル) エクセルシート中の全角英数字を半角に変換したい 4 2022/07/07 13:14
- Visual Basic(VBA) 【VBAエラー】Nextに対するForがありません 対策について 5 2022/11/21 21:26
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- Visual Basic(VBA) VBAが止まります。 1 2022/09/02 14:51
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- Visual Basic(VBA) エラーコード1004 6 2022/06/09 14:12
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) countifsについての質問 3 2023/03/08 13:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelで指定した日付から過去の...
-
ExcelVBAを使って、値...
-
DataGridViewの各セル幅を自由...
-
VBAでセル同士を比較して色付け
-
Excel VBA、 別ブックの最終行...
-
特定のセルが空白だったら、そ...
-
エクセルvbaで、別シートの最下...
-
VBAでセルをクリックする回...
-
【Excel VBA】指定行以降をクリ...
-
【VBA】シート上の複数のチェッ...
-
Excel vbaについて知恵もしくは...
-
DataGridViewで列、行、セルの選択
-
Excel VBAで、 ヘッダーへのセ...
-
【VBA】指定したセルと同じ値で...
-
VBA ユーザーフォーム ボタンク...
-
スプレッドシートの数値列に対...
-
i=cells(Rows.Count, 1)とi=cel...
-
結合セルを含む列の非表示方法
-
Excel VBA 計算式を代入するには?
-
ExcelのVBAで数字と文字列をマ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ExcelVBAを使って、値...
-
i=cells(Rows.Count, 1)とi=cel...
-
Excelで指定した日付から過去の...
-
エクセルvbaで、別シートの最下...
-
特定のセルが空白だったら、そ...
-
VBA実行後に元のセルに戻りたい
-
【Excel VBA】指定行以降をクリ...
-
任意フォルダから画像をすべて...
-
【Excel】指定したセルの名前で...
-
VBAでセルをクリックする回...
-
【VBA】シート上の複数のチェッ...
-
EXCELのVBA-フィルタ抽出後の...
-
Excelのプルダウンで2列分の情...
-
Excel vbaで特定の文字以外が入...
-
TODAY()で設定したセルの日付...
-
”戻り値”が変化したときに、マ...
-
ExcelのVBAで数字と文字列をマ...
-
VBA ユーザーフォーム ボタンク...
-
Excel VBA マクロ ある列の最終...
-
Excel VBA、 別ブックの最終行...
おすすめ情報
