advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 1385 for ������������ #N/A (0.016 sec.)
[[20161015144743]]
#score: 6930
@digest: 6baae0a64aa24e5d4dc36df7be3eec46
@id: 71813
@mdate: 2016-10-15T14:03:55Z
@size: 5503
@type: text/plain
#keywords: adr1 (28795), 不案 (17315), 買* (15497), 売# (15497), 「o1 (14214), 転作 (12695), ・買 (11091), 文通 (9894), 件文 (8910), snb1001 (8039), ixrow (5070), 明文 (3561), 案内 (2618), 反転 (2062), 土) (1146), 上下 (1113), select (977), cutcopymode (956), clearcontents (954), 2016 (802), selection (762), う文 (759), (β (673), range (618), アッ (586), cells (571), 記述 (527), ル内 (513), 空欄 (484), ブジ (457), オブ (456), ジェ (426)
『条件文がいまいち不案内』(snb1001)
いつもお世話になっております。 またわからないことが出てきましたので 教えを乞いたく存じます。 M列 N列 O列 9 16-11P/売 #N/A 10 16000 95 11 16-11P/買 370 12 17000 #N/A 13 16-11P/売 #N/A 14 16625 230 15 16-11C/買 115 16 17375 #N/A こんな感じの表があります。 #N/Aには数字が入っています。 やりたいことは「M9」のセル内に「売」という文字が 入っているので「O9」のセルの値を下の「O10」 にコピーして「O9」の数値を消します。 また、「M11」のセル内には、「買」という文字が 入っているので「O12」のセルの値を一つ上の「O11」 にコピーして「O12」の数値を消します。 以下順番にM13、M15、・・・と見ていきます。 時にO列が空欄のところもあるかもしれませんが その時もスルーで空欄をコピー。 そこで、こんなマクロを組んでみましたが 条件文がいまいち不案内のままです。 Sub 反転に() Dim r As Range Dim adr1 As String, adr2 As String, adr3 As String Dim col As Range Dim col2 As Range Set r = Range("M9:O26") '★対象となる範囲 adr1 = r.Cells(1).Address(False, False) IF adr1=*買* THEN adr1.Cells(3).Select Selection.Copy adr1.Cells(3,1).Select ActiveSheet.Paste adr1.Cells(3).Select Application.CutCopyMode = False Selection.ClearContents END IF IF adr1=*売* THEN adr1.Cells(3).Select Selection.Copy adr1.Cells(3, 1).Select ActiveSheet.Paste adr1.Offset(3, 1).Select Application.CutCopyMode = False Selection.ClearContents END IF End Sub なお、例の表にあるようにいつも2行ずつ 一まとまりになっており上のセルはM列に「買」 という文字を見つけると上のセルに、「売」と いう文字を見つけると下のセルに自動的に入ります。 ただ、売り・買いの反転作業を経ると O列はそのまま残ってしまいその場合の 後処理を手作業で行っていますが ちょっと危ういのです。 < 使用 Excel:Excel2010、使用 OS:Windows7 > ---- >IF adr1=*買* THEN Like演算子 を使って比較してください。 参考URL>> http://www.239-programing.com/excel-vba/basic/basic044.html http://span.jp/office2010_manual/excel_vba/practical/like-operator.html https://www.moug.net/tech/exvba/0140043.html (まっつわん) 2016/10/15(土) 15:27 ---- >>#N/Aには数字が入っています。 この意味がわかりません。数字が入っているのに、なぜ #N/A と表示されているのですか? >>ただ、売り・買いの反転作業を経ると >>O列はそのまま残ってしまい アップされたコード、未実行ですけど、実行するとそうなるのですか? >>にあるようにいつも2行ずつ一まとまりになっており 2行1かたまりの上の行のA列セルの文字列の最後が 売 または 買 ということですね? (β) 2016/10/15(土) 15:29 ---- もう何点か。 >>条件文がいまいち不案内のままです 条件文のみならず、領域の記述ルールも、参考書ないしはネットの解説ページで勉強をされたほうがよろしいかと。 なにか.Cells(1) といった記述を行う場合、「なにか」は Rangeオブジェクトでなければいけません。 Adr1.Cells(1) という記述だと、Adr1 がRangeオブジェクトではなく、単なる文字列なのでエラーになります。 また、adr1.Offset(3, 1).Select adr1. はだめですけど、それ以外に、Offset(3,1) は、基準セルの 3行下、1列右 をさします。 なんかおかしいですね。 また、この Select したセルを、どこでも利用してませんね。 (β) 2016/10/15(土) 15:39 ---- 説明文通りに処理をするとアップされた例では、O列がすべて空白になりますが、それでいいのですか? (β) 2016/10/15(土) 15:53 ---- 結局、売りでも買でも上下のセルを入れ替えるのは同じですよね? Sub test2() Dim Rng As Range Dim ixRow As Long Set Rng = Range(Range("M9"), Cells(Rows.Count, "M").End(xlUp)) For ixRow = 1 To Rng.Count Step 2 Rng(ixRow, 3).Cut Rng(ixRow + 2, 3).Insert xlShiftDown Next End Sub (まっつわん) 2016/10/15(土) 16:44 ---- コメントした通り、説明文の通りに処理すると、例示のケースでは ??? になりますが、 とりあえず。 Sub Sample() Dim i As Long For i = 9 To Range("N" & Rows.Count).End(xlUp).Row Step 2 Select Case Right(Range("N" & i).Value, 1) Case "売" Range("O" & i + 1).Value = Range("O" & i).Value Range("O" & i).ClearContents Case "買" Range("O" & i).Value = Range("O" & i + 1).Value Range("O" & i + 1).ClearContents End Select Next End Sub (β) 2016/10/15(土) 17:30 ---- こんばんは。 だいぶ時間がたってしまっている間に マクロまで作っていただいていて 大変、恐縮しております。 まっつわんさま、βさま ありがとうございます。 さて、当初の私の説明があまりにマズく みなさまに多くの混乱をおこさせてしまいました。 失礼しました。 さて、結論ですが、まっつわんさまの ご指摘通りでした。 条件の「売」「買」は関係なくただ 上下の入れ替えで済む話でした。 これも、言われてみて初めて 気が付いたことでした。 この間、 最初の表で#N/Aをそのままにして、コピーペイストしてしまったことで (このエラー表示の意味がよくわかっていませんでした。)βさまに 失礼してしまいました。 また、アップしたマクロはコンパイルすらできないまま 「こんな雰囲気」みたいな感じの手抜きのマクロとも呼べない しろものでした。 にもかかわらず、βさまには「説明文通りに」処理したマクロを 書いてくださりほんとうにありがとうございます。頭が下がる思いです。 このマクロ、わたしの今の知識では まったく歯が立ちませんので、 私の勉強用に表を書き換えながら 研究させていただきます。 改めて、ありがとうございました。 (snb1001) 2016/10/15(土) 23:03 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/201610/20161015144743.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97049 documents and 608241 words.

訪問者:カウンタValid HTML 4.01 Transitional