[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『Replace使用してのエラー 名前付き引数が見つかりません』(hiro)
Replaceを使用し文字列の置換を行ったのですが「部分一致」、「完全一致」や条件を指定しようと
以下のコードを記載したのですが、名前付き引数が見つかりませんのエラーがでてしまい、
どのようにコードを書きなおしてらよいかわからず困っております。
どなたかご教示お願いします。
.Replace what:="", replacement:="", LookAt:=xlPart ':部分一致( LookAt:=xlPart)
.Replace what:="", replacement:="", LookAt:=xlWhole ':完全一致( LookAt:=xlWhole)
(検索文字列,置換文字列,部分完全一致,検索方向,大小文字区別,半角全角,書式条件,書式置換)
以下だと正常に動きますが。
MyArray(i1, 1) = Replace(MyArray(i1, 1), "Sum", vbLf)
以下のコードだとエラーになってしまします。
MyArray(i1, 1) = Replace(MyArray(i1, 1), "Sum", vbLf, LookAt:=xlWhole)
Public Sub データ削除試作品3(Lost_Row As Long)
Dim da As Worksheet Dim i1 As Long Dim COUNT As Long Dim MyArray As Variant
COUNT = Lost_Row - 2
Set da = ThisWorkbook.Worksheets("date")
MyArray = da.Range(da.Cells(1, 15), da.Cells(COUNT, 15))
'For i1 = 1 To COUN
For i1 = LBound(MyArray) To UBound(MyArray)
MyArray(i1, 1) = Replace(MyArray(i1, 1), "Sum", vbLf) MyArray(i1, 1) = Replace(MyArray(i1, 1), "Sum", vbLf, LookAt:=xlWhole)
Next i1
da.Range(da.Cells(1, 15), da.Cells(COUNT, 15)) = MyArray
End Sub
< 使用 Excel:Office365、使用 OS:Windows10 >
| 以下だと正常に動きますが。 | MyArray(i1, 1) = Replace(MyArray(i1, 1), "Sum", vbLf) そうですか?
まず、 ・RangeオブジェクトのReplaceメソッド と ・Replace関数 のふたつをきちんと腑分けして理解してください。 上のReplaceはRangeオブジェクトとは無関係ですので、Replace関数とみなされます。
また、vbLfの意味はご存じですか? そして、それはどの引数の実引数の積りなんでしょうか?
確認をしてください。
(γ) 2022/01/15(土) 20:34
If MyArray(i1, 1) = "Sum" Then MyArray(i1, 1) = vbLf
(マナ) 2022/01/15(土) 20:46
すでに指摘をもらっていますので、そのようにしてください。
(γ) 2022/01/15(土) 23:22
と関連した話なんですか?
そこでは、RangeのReplaceメソッドを使って議論されていましたので、 先入観で、今回もReplaceメソッドの話かと、決めつけてしまったのでした。
ところで、その話は解決できたのですか? 私には、そもそもされたいことがよく分かりませんでした。
提示された解決策も、元の文字列に極めて依存した文字列を入力に求めており、 ほんとうにそれでユーザーのニーズに応えた汎用性あるものなのか不明でした。
継続問題であれば、最初からきちんと説明されたらどうですか? 小出しにせずに。
(a)変更前の式 Sum(UE_PCELL_1_CONF_SCELL_DL_SA + 2 * UE_PCELL_2_CONF_SCELL_DL_SA) / Sum(UE_PCELL_1_CONF_SCELL_DL_SA + UE_PCELL_2_CONF_SCELL_DL_SA) から、 (b)以下の文字列 UE_PCELL_1_CONF_SCELL_DL_SA UE_PCELL_2_CONF_SCELL_DL_SA UE_PCELL_1_CONF_SCELL_DL_SA UE_PCELL_2_CONF_SCELL_DL_SA を取り出す、 ということがやりたいことですか?
(Q1)入力は、Excelのワークシートの数式ですか?それとももっと一般的なものですか? また、そのデータはどこにありますか?ワークシート上?テキストファイル? (Q2)出力はどういうものですか? 変数(or 定義された名前)と思われるものを抽出するんですか? それは何のために抽出するんですか? その先にある、もっと上位の目標があれば、それをまず先に示したらどうですか? topdownで話をしたほうがよいと思います。"らっきょう"の皮みたいになりかねません。 (Q3)抽出するために、それ以外の要素(文法上の既定の要素)を削除しようとしているように 見えますが、そういうことなんですか?
(γ) 2022/01/16(日) 22:42
(Q1)入力は、Excelのワークシートの数式ですか?それとももっと一般的なものですか? また、そのデータはどこにありますか?ワークシート上?テキストファイル?
ワークシート上にあります。
(Q2)出力はどういうものですか? 変数(or 定義された名前)と思われるものを抽出するんですか? それは何のために抽出するんですか? その先にある、もっと上位の目標があれば、それをまず先に示したらどうですか?
ワークシート上にある数式から余計なものを全て削除した物をワークシートに出力したい。
(Q3)抽出するために、それ以外の要素(文法上の既定の要素)を削除しようとしているように 見えますが、そういうことなんですか?
はい、余計なものを削除して、完成例のような形にしたいです。
例 [2021/11/02] (Sum([NRRCC_RRC_STPREQ_MO_SIGNALLING] + [NRRCC_RRC_STPREQ_MO_DATA] + [NRRCC_RRC_STPREQ_MO_VOICECALL] + [NRRCC_RRC_STPREQ_MO_SMS] + [NRRCC_RRC_STPREQ_MO_VIDEOCAL] )
完成例 NRRCC_RRC_STPREQ_MO_SIGNALLING NRRCC_RRC_STPREQ_MO_DATA NRRCC_RRC_STPREQ_MO_VOICECALL NRRCC_RRC_STPREQ_MO_SMS NRRCC_RRC_STPREQ_MO_VIDEOCAL
(hiro) 2022/01/17(月) 12:49
| Excelのワークシートの数式ですか?それとももっと一般的なものですか?
| その先にある、もっと上位の目標があれば、それをまず先に示したらどうですか?
大方針がわかっていれば、ある程度、細かいところの判断も付きやすいでしょう。
| 抽出するために、それ以外の要素(文法上の既定の要素)を削除しようとしているように
| 見えますが、そういうことなんですか?
つまり、何が余計なもので、何が必要なものなんですか?
明示的に書いていただかないと、無駄なやりとりが続きます。いたちごっこです。
もしExcelなら、演算子とかユーザー定義関数とか、
いろいろなメソッド名、プロパティ名とかはどうなんですか。
[2021/11/02]は数式の一部とも思えませんが、これを消すなら、
消すべきものは無数にありえますね。(コメント的なものならたくさんありえます)
逆に、「アルファベット大文字、数字、_ で構成される文字列」
とかで抽出できるのであれば、そのアプローチのほうが適切かもしれません。
(γ) 2022/01/17(月) 14:52
求めているものは、文法上の既定の要素以外の全ての削除です。
()「」[]{}/-*+ などの記号やSUM、sum、Sum、などの要素以外の文字日付など全てを削除したいです。
(hiro) 2022/01/17(月) 15:15
そもそもの目的も開示されないですし、
いまのままだと、こちらではまったく着手できません。
少し間を置きましょう。
(γ) 2022/01/17(月) 16:11
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.