VBAは超初心者です。始めたばかりでなかなかのみこめず、
独学で解決できなくなり、ご教示いただきたく思います。
Excel VBAで、A列で表示させた値(こちらは数式バーには計算式が入っています)を、
隣のB列(B2からA列に値が入っている行まで)に特定の文字列と特定の文字列の間の値を表示させたいのです。
値は
A2~A10
まで入っています。
1行目は成功しました。
2行目から、A3以降の値が、転記されないのです。
分かりにくいかもしれませんが、画像を貼ります。(画像は完成させたいイメージ図です)
説明がうまくなく、申し訳ございません。どなたか原因等ご教示いただけたら
幸いです。宜しくお願い致します。
***********************
Sub 転記()
Dim S2 As Worksheet
Dim myStr As Variant
Dim myStr2 As Variant
Dim iRowI As Integer
Dim iLastRow As Integer
Set S2 = Worksheets("食べ物") '今回使用するシート
'"食べ物"シートのA列の最終行を取得する("抽出"列の最終行)
iLastRow = S2.Range("A2").SpecialCells(xlLastCell).Row
'最終データ行までループ処理させる
For iRowI = 2 To iLastRow
'文字列処理
myStr2 = S2.Cells(2, 1).Value
If S2.Cells(2, 2).Value = Mid(myStr2, InStr(myStr2, ")") + 1, InStr(myStr2, "WEEKLY") - InStr(myStr2, ")") - 2) Then
End If
Next
End Sub
No.2ベストアンサー
- 回答日時:
こんばんは。
(1)いちご FOOD(@@@@)
>Mid(myStr2, InStr(myStr2, ")") + 1, ここは分かりますが、
>InStr(myStr2, "WEEKLY") - InStr(myStr2, ")") - 2)
ここが何をしているのかよくわからないですね。元のデータと違うのではないでしょうか?
画像からみる印象では、空白を探すという手もあるのですが、空白が必ずしもあるとは限らないわけです。
FOOD を探すとか、
例えば、こういうことになります。
For iRowI = 2 To iLastRow
'文字列処理
myStr =S2 .Cells(iRowI, 1).Value
S2.Cells(iRowI, 2).Value = Mid(myStr, InStr(myStr, ")") + 1, InStr(myStr, ")") - InStr(myStr, "FOOD"))
Next
WindFallerさん
ご回答ありがとうございます!
上手く書けなくて申しわけございません(汗)
別で試していたソースを貼ってしまっていました・・・
myStr2 = S2.Cells(2, 1).Value
If S2.Cells(2, 2).Value = Mid(myStr2, InStr(myStr2, ")") + 1, InStr(myStr2, "FOOD") - InStr(myStr2, ")") - 2) Then
End If
Next
End Sub
B2の”いちご”は転記が出来たので、他のも同じように転記したいのに
上手くループ処理が出来ませんでした。
”いちご”の様に、前の(1)や後ろの”FOOD”から後ろの文字列は不要で、
その間にある文字列をすっぽり転記したかったのです( ; ; )
ご教示いただいたソースで、修正し試しています!
ありがとうございます!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 3つのプロシージャをまとめたら実行時エラー発生で対応不能 6 2022/05/17 01:47
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) エクセルVBAで教えて頂きたいのですが? 2 2022/12/31 20:28
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) vba 重複データ合算 5 2023/07/05 18:55
- Visual Basic(VBA) 【VBA】特定のワードが入っている行全体を塗りつぶしたい 4 2022/04/20 15:22
- Visual Basic(VBA) 貼り付けた値が消えていく 以下はソースファイルの2番目のシートのB6から最終行を取得 ターゲットファ 2 2023/07/27 12:23
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
EXCEL VBA 指定したファイルが存在しない場合メッセージボックスを表示させる
Access(アクセス)
-
エクセルVBAでセルに入力したパスでブックを開く
Excel(エクセル)
-
'Range'メソッドは失敗しました
Excel(エクセル)
-
-
4
どうやってもFor文を抜けてしまいます…(VBA)
Excel(エクセル)
-
5
実行時エラー 438になった時の対処法を教えて下さい。
Visual Basic(VBA)
-
6
【VBA】2つのシートの値を比較して条件一致したら、同じ行の隣の値を別ブックへ転記したいです。 VB
Visual Basic(VBA)
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
C言語の変数(LSB)の合わせ込...
-
直し方について教えて頂きたい...
-
【Excel VBA】繰り返し処理がで...
-
wsprintf関数の使い方について
-
getParameterの値変更
-
<JFreeChart> 縦軸の値の間隔を...
-
JAVA初学者の悩み: 変数と算術...
-
Evaluate()に文字列の形式の数...
-
ランダムに値を返す
-
特定の文字列を複数抜き出した...
-
日付や時刻の"01"を" 1"に変換...
-
matchesを否定文として使う方法...
-
Javaの問題なのですが、「3文字...
-
String str = "a\\\\b\\\\c";
-
JSPでHashMap・配列の変数の値...
-
VBAの簡単のようで出来ないこと...
-
hiddenの値を消したくない!
-
ArrayListの要素数の上限
-
C言語のポインターに関する警告
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
ArrayListの要素数の上限
-
DateTimePickerに値を入れたい...
-
wsprintf関数の使い方について
-
Stringクラスの変数の格納アド...
-
BCD形式で時刻を!
-
javaのCSVデータ読込についてです
-
このプログラミング誰か教えて...
-
Evaluate()に文字列の形式の数...
-
このプログラミング誰か教えて...
-
JSPでHashMap・配列の変数の値...
-
特定の文字列を複数抜き出した...
-
matchesを否定文として使う方法...
-
DOSバッチで変数の値を変数名に...
-
Javaの問題なのですが、「3文字...
-
excel vba 時間計算と条件分岐...
-
実行シェルからCOBOLへパラメー...
-
日付や時刻の"01"を" 1"に変換...
-
VB6,論理演算子Orの使い方がわ...
-
char型での演算子
おすすめ情報