advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 37699 for IF (0.008 sec.)
[[20070825112122]]
#score: 1591
@digest: 7ea7e11f4e8fa1e6eff0c64dfb95faf4
@id: 32866
@mdate: 2007-08-25T11:27:02Z
@size: 9568
@type: text/plain
#keywords: sushiki1 (73445), eur (30145), usrate (29072), usd (27876), eurate (22142), sushiki2 (21804), other (18501), 117 (13017), pe (12128), round (11379), mb (9579), 156 (7622), myrange (4966), o2 (4816), rc (4800), キ様 (4019), 括弧 (3518), n2 (3488), m2 (3300), ‾‾ (2647), and (2294), ネス (2181), 能し (2040), formular1c1 (1635), 記録 (1602), リキ (1562), 数式 (1515), キリ (1454), seiya (1295), 変数 (1254), 置換 (1211), 代入 (1130)
『アプリケーション定義またはオブジェクト定義のエラー』(りす)
Excel2003 WindowsXPです。 こんにちは、慣れないVBAに悪戦苦闘しております・・。 下から2つ目のコード myrange.Offset(0, 1).・・が 黄色くなって、実行時エラー1004 アプリケーション定義またはオブジェクト定義のエラーとなります。恐れ入りますが、どなたかお助け頂けないでしょうか。何卒宜しくお願いします。 '"MB"と"PE"と"OTHER"の3つに区分分けする行作成 ' "myrange" にN行のデータが入っている全てのセルを設定 Dim myrange As Range Set myrange = Range("N2", Range("N" & Rows.Count).End(xlUp)) '"sushiki1"に事業所を3つ(MBとPEとOTHER)に区別する数式を設定 Dim sushiki1 As String ' "sushiki1"は文字列ですと宣言。 sushiki1 = "=If(RC[-13]=""MB"" & ""*"",""MB"",IF(RC[-13]=""PE"" & ""*"",""PE"",""OTHER"")" myrange.Offset(0, 1).FormulaR1C1 = sushiki1 ' myrange範囲の一つ右のセルにsushiki1を代入 Set myrange = Nothing ---- こんにちは! )←が一つ足りない様です。 sushiki1 = "=If(RC[-13]=""MB"" & ""*"",""MB"",IF(RC[-13]=""PE"" & ""*"",""PE"",""OTHER"")" ↓ sushiki1 = "=If(RC[-13]=""MB"" & ""*"",""MB"",IF(RC[-13]=""PE"" & ""*"",""PE"",""OTHER""))" (SoulMan) ---- 衝突! 1) 括弧が足りない。 2) "*"をワイルドカード文字として使用しているのなら、数式自体が問題 (seiya) ---- Soulman様 seiya様 ありがとうございます。自分で解決できるか ちょっとやってみて、後ほど報告いたします! ---- すみません、頂いたアドバイスを元に、以下の様に変更したのですが 同じエラーとなってしまいます。。どのようにすれば良いでしょうか。 sushiki1 = "=IF(COUNTIF(RC[-13],""MB*""),""MB"",IF(COUNTIF(RC[-13]=""PE*""),""PE"",""OTHER""))" ---- 2番目の CountIf 関数の中がおかしいのでは? If(CountIf(RC[-13],""PE*"") 数式のVBA記述の取得の仕方 1) 数式をセルに入れて機能しているか確認する。 2) マクロの記録 3) 数式の入ったセルをクリックして F2 を押す 4) Enter で確定 5) マクロ記録の終了 これでコードが生成されているはずです。 (seiya) ---- seiya様 大変ありがとうございます。重ねて申し訳ございませんが。このコードに続く 以下でも全く同じエラーになります。お助け頂けないでしょうか。 やろうとしていること:あらかじめ Usrate と Eurateというcurrencyで宣言された変数に“117”などの数字が代入されており、セル参照にて、事業所(MBとPEとOTHER)とUSDかEURを区別して それぞれに適切なレート換算式を当てはめる。 Dim sushiki2 As String sushiki2 = "=IF(AND(RC[-1]=""MB"",RC[-3]=""USD""),ROUND(O:O * Usrate/10,0)),IF(AND(RC[-1]=""MB"",RC[-3]=""EUR""),ROUND(O:O * Eurate/10,0)),IF(AND (RC[-1]=""PE"",M2=""USD""),ROUND(O:O * Usrate,-1)),IF(AND(RC[-1]=""PE"",RC[-3]=""EUR""),ROUND(O:O * Eurate,-1)),IF(AND (RC[-1]=""OTHER"",RC[-3]=""USD""),ROUND(O:O * Usrate,0)),IF(AND (RC[-1]=""OTHER"",RC[-3]=""EUR""),ROUND(O:O * Eurate,0))" mirange.Offset(0, 1).FormulaR1C1 = sushiki2 ご教示頂いた方法を試すべく、下記を直接セルに入力し、試みたのですがやはり数式に不備があるようです。そもそも、関数のレベルが多すぎるのでしょうか?その場合どういった解決方法があるかご教示頂けないでしょうか? IF(AND(O2="MB",M2="USD"),ROUND(N2 * 117/10,0)),IF(AND(O2="MB",M2="EUR"),ROUND(N2 * 156/10,0)),IF(AND (O2="PE",M2="USD"),ROUND(N2 * 117,-1)),IF(AND(O2="PE",M2="EUR"),ROUND(N2 * 156,-1)),IF(AND (O2=""OTHER"",M2="USD"),ROUND(N2 * 117,0)),IF(AND (O2="OTHER",M2="EUR"),ROUND(N2 * 156,0)) ---- 変数の部分に実際の数値を入れて、数式が機能していたらマクロで記録してください。 そのコードをアップして、変数の部分を指摘してください。 (seiya) ---- 割り込みすいません。。。 =IF(AND(O2="MB",M2="USD"),ROUND(N2 * 117/10,0)),IF(AND ‾‾1 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾2 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾3 ‾4 1.IF関数 2.条件 3.真の場合 4.偽の場合 ←ここがありませんし、かっこで 1 のIF関数が終わってます。 関数として完成されてませんよ〜 >関数のレベルが多すぎるのでしょうか? これは、ネストのことだと思うのですが、そちらは大丈夫な気がします。 (キリキ)(〃⌒o⌒)b ---- seiya様 ありがとうございます。 >変数の部分に実際の数値を入れて、数式が機能していたら 下記数式の "117" "156" の部分が“変数の部分に実際の数値を入れ”て 試したつもりだったのですが、これとは違うお話でしょうか? すみません。 IF(AND(O2="MB",M2="USD"),ROUND(N2 * 117/10,0)),IF(AND(O2="MB",M2="EUR"),ROUND(N2 * 156/10,0)),IF(AND (O2="PE",M2="USD"),ROUND(N2 * 117,-1)),IF(AND(O2="PE",M2="EUR"),ROUND(N2 * 156,-1)),IF(AND (O2=""OTHER"",M2="USD"),ROUND(N2 * 117,0)),IF(AND (O2="OTHER",M2="EUR"),ROUND(N2 * 156,0)) キリキ様 ありがとうございます。 =IF(AND(O2="MB",M2="USD"),ROUND(N2 * 117/10,0)),IF(AND・・ ‾‾1 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾2 ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾3 ‾4 全部で6個あるif節の‾4の括弧閉じ")"を削除して、試みたのですが やはり数式としてエラーがあると言われてしまいました。。どうしたら よいかご教示いただけないでしょうか? ---- キリキさんも指摘されていますが、その数式では機能しないでしょ? もともと機能していない数式に変数を代入しても無駄です。 (seiya) ---- 気がついた点をばw >全部で6個あるif節の‾4の括弧閉じ")"を削除して、試みたのですが >やはり数式としてエラーがあると言われてしまいました。。どうしたら >よいかご教示いただけないでしょうか? はじめに、 上の提示している数式を見る限りでは、消していませんよね? さらに、消すのは一個ではありませんよ? IF関数全部の括弧の位置が間違っています。 消すだけではだめです。 括弧の数が足りなくなりますかねb 最後に全部くっつけてください。 次に、 AND ( ‾‾‾ などのように、邪魔なスペースが入っています。 これも、消してください。(2つあります。) さらに、 AND(O2=""OTHER"",M2="USD") ‾‾ ‾‾ これは「"」が多くありませんか? マクロの記述の前に、計算式を完成させなければ始まりませんよ〜 (キリキ)(〃⌒o⌒)b ---- ネストの多い数式のベタ打ちは、 良い結果を生まないことが多いですよ。 IF関数を一つずつ作りましょう。 一つ入れ込んでは、確認し。 一つ入れ込んでは、確認し。 していくと、どこのネストが変なのか分かります。 例えば、最初の2つです。 O2 M2 [1] MB USD ROUND(N2*117/10,0) [2] MB EUR ROUND(N2*156/10,0) 1行目を式にすると =IF(AND(O2="MB",M2="USD"),ROUND(N2*117/10,0),FALSE) 条件に合わない時は、FALSE を表示させる事にします。 O2とM2に文字をいれて、思った結果が出ることを確認して下さい。 次に2行目を式にすると =IF(AND(O2="MB",M2="EUR"),ROUND(N2*117/10,0),FALSE) ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ 作った数式が正しく機能することが確認できたら、 この式は最初の式で結果が「FALSE」と出たときに 計算したいので、その部分に入れ込みます。 =IF(AND(O2="MB",M2="USD"),ROUND(N2*117/10,0),IF(AND(O2="MB",M2="EUR"),ROUND(N2*117/10,0),FALSE)) ‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾ この手順で、6番目まで入れ込んでいきます。 一歩一歩進んでいくのが、一番近道だったりしますよ。 ところで、「sushiki1」の方は出来たのですかね? もちろん、ワークシート上で期待する結果が得られる物が と言うことですが・・・。 (HANA) ---- seiya様 キリキ様 HANA様 アドバイス頂き誠に有難うございます。 皆様の方法で再トライし、後ほど結果を報告させて頂きます。 ---- 皆様のおかげで、以下の通り数式ができました。 (HANA様、言葉足らずですみません、sushiki1は解決しております。) セルに直接打ち込んで、期待通りの結果(レート換算) が出ます。 =IF(AND(O2="MBI",M2="USD"),ROUND(N2*117/10,0),IF(AND(O2="MBI",M2="EUR"),ROUND(N2*156/10,0),IF(AND(O2="PED",M2="USD"),ROUND(N2*117,-1),IF(AND(O2="PED",M2="EUR"),ROUND(N2*156,-1),IF(AND(O2="OTHER",M2="USD"),ROUND(N2*117,0),IF(AND(O2="OTHER",M2="EUR"),ROUND(N2*156,0))))))) 次に、 数式のVBA記述の取得の仕方 1) 数式をセルに入れて機能しているか確認する。 2) マクロの記録 3) 数式の入ったセルをクリックして F2 を押す 4) Enter で確定 5) マクロ記録の終了 で記録されたコードが以下で、実行してみますとエラーとなります。皆様のアドバイスを頂戴したいのですが。 ActiveCell.FormulaR1C1 = _ "=AND(RC[-1]=""MBI"",RC[-3]=""USD"")?ROUND(RC[-2]*117/10,0)""MBI"",RC[-3]=""EUR"") ROUND(RC[-2]*156/10,0) AND(RC[-1]=""PED"",RC[-3]=""USD"")?ROUND(RC[-2]*117,-1)?AND(RC[-1]=""PED"",RC[-3]=""EUR"")""OTHER"",RC[-3]=""USD"")?" ---- 記録の段階でエラーになりませんか? (私のエクセル君は、記録自体してくれませんでした。) 実際の式と、現在記録されているコードを見比べたら 正しく記録されていない事はお分かりだと思います。 それを正しく書き直せば、エラーにならない式が 完成すると思いますが・・・・ "=IF(AND(RC[-1]=""MBI"",RC[-3]=""USD""),ROUND(RC[-2]*117/10,0), IF(AND(RC[-1]=""MBI"",RC[-3]=""EUR""),ROUND(RC[-2]*156/10,0), IF(AND(RC[-1]=""PED"",RC[-3]=""USD""),ROUND(RC[-2]*117,-1), IF(AND(RC[-1]=""PED"",RC[-3]=""EUR""),ROUND(RC[-2]*156,-1), IF(AND(RC[-1]=""OTHER"",RC[-3]=""USD""),ROUND(RC[-2]*117,0), IF(AND(RC[-1]=""OTHER"",RC[-3]=""EUR""),ROUND(RC[-2]*156,0)))))))" せっかく式が出来ているのですから、直接書き込んではどうですか? ただし、「"」を「""」に書き換える必要が有りますので 1.セルに数式を入れて、最初の「=」を削除。 2.Ctrl + H 3.検索する文字列(N): " 置換後の文字列(E): "" [ 置換(R) ] 4.式の最初に「"=」最後に「"」をつける 5.コードを差し替え 置換の手順を踏んでください。 ちなみに、数字を変数に置換するときは 「117」→「"& Usrate &"」 変数の前後を、「ダブルクオーテーション・アンパサント・スペース」 で囲った物と置換してください。 上手く行きそうですか? そ・・・そうそう、コメント記入の際は 忘れずご署名を御願いしますね。 (HANA) ---- HANA様 seiya様 キリキ様 本日は大変お世話になりました。 全て解決し、感動です! ご親切に教えて頂き、心より感謝しております。 ありがとうございました!! (りす) p.s署名の件大変失礼致しました。 ...
https://www.excel.studio-kazu.jp/wiki/kazuwiki/200708/20070825112122.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97063 documents and 608337 words.

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