Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


8830 / 13645 ツリー ←次へ | 前へ→

【30920】計算式のセット VBA素人 05/11/7(月) 11:27 質問[未読]
【30922】Re:計算式のセット Statis 05/11/7(月) 11:37 発言[未読]
【30923】Re:計算式のセット Statis 05/11/7(月) 11:40 回答[未読]
【30931】Re:計算式のセット VBA素人 05/11/7(月) 13:21 質問[未読]
【30929】Re:計算式のセット Kein 05/11/7(月) 12:47 回答[未読]

【30920】計算式のセット
質問  VBA素人 E-MAIL  - 05/11/7(月) 11:27 -

引用なし
パスワード
   A   B
------------------
1010 100
1020 200
1030 300
9901 ***
2010 110
2011 120
9901 ***
3001 200
3002 300
9901 ***

上記のようなデータがあります。LOOPで回して
Aが9901だったらBのセルに計算式を設定したいのですが
どうマクロを書いてよいのかわかりません。宜しくお願いします。

【30922】Re:計算式のセット
発言  Statis  - 05/11/7(月) 11:37 -

引用なし
パスワード
   こんにちは
ループでセルの値をIF文で確認して行けば良いのでは?

【30923】Re:計算式のセット
回答  Statis  - 05/11/7(月) 11:40 -

引用なし
パスワード
   こんにちは

一応、こんな感じです。

Sub test()
Dim i As Long
For i = 1 To Range("A65536").End(xlUp).Row
  If Cells(i, 1).Value = 9901 Then
    Cells(i, 2).Formula = "数式"
  End If
Next i
End Sub

【30929】Re:計算式のセット
回答  Kein  - 05/11/7(月) 12:47 -

引用なし
パスワード
   >計算式を設定
というのは、B列の小計を入れるという意味でしょーか ? それならこんな感じで。

Sub MyFilter()
  Dim MyR As Range, SmR As Range
  Dim i As Long

  Application.ScreenUpdating = False
  If Range("A1").CurrentRegion.ListHeaderRows = 0 Then
   Rows(1).Insert xlShiftDown
   Range("A1:B1").Value = Array("Data1", "Data2")
  End If
  Set MyR = Range("A2", Range("A65536").End(xlUp)).Offset(, 1)
  Range("A:A").AutoFilter 1, "<>9901"
  Set SmR = MyR.SpecialCells(12)
  Range("A:A").AutoFilter 1, "9901"
  On Error GoTo ELine
  Set MyR = MyR.SpecialCells(12)
  On Error GoTo 0
  For i = 1 To MyR.Areas.Count
   MyR.Areas(i).Formula = "=SUM(" & SmR.Areas(i).Address & ")"
  Next i
ELine:
  ActiveSheet.AutoFilterMode = False
  If Range("A1").Value = "Data1" Then Rows(1).Delete xlShiftUp
  Application.ScreenUpdating = True
  Set MyR = Nothing: Set SmR = Nothing
End Sub

【30931】Re:計算式のセット
質問  VBA素人 E-MAIL  - 05/11/7(月) 13:21 -

引用なし
パスワード
   ▼Statis さん:
>こんにちは
>
>一応、こんな感じです。
>
>Sub test()
>Dim i As Long
>For i = 1 To Range("A65536").End(xlUp).Row
>  If Cells(i, 1).Value = 9901 Then
>    Cells(i, 2).Formula = "数式"
>  End If
>Next i
>End Sub

早速解答を頂きありがとうございます。
実は上記の"数式"部分の書き方が解らないのです。

言葉足らずですみませんでした。よろしく御願い致します。

8830 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free