saltyayumu
(saltyayumu)
September 3, 2018, 9:37am
1
エクセルの値を読み込んだり、書き込むことは可能ですが、
別のエクセルから取得した値と同じシートとセルを指定することは可能でしょうか。
私が実施したいことは具体的に下記となります。
1)エクセルから値を2つ取得し変数に格納(シート名A と セル名Aとします)
2)別のエクセルにある「シート名A」と同じシートから「セル名A」と同じ値があるセルを特定する
3)「セル名A」の一つ右のセルの値を取得し変数に格納(セル名Bとします)
4)yyyymm_ + セル名B という名前にしてセル名Bの中身を上書きし保存して閉じる
3の後半部分~4はできそうだなと思っているのですが、
変数で取得した値を指定するやり方はないのではと思い質問させていただきました。
説明下手で且つ長文で申し訳ございません。
不明点や不足情報がありましたらご指摘願います。
Honoka
(Honoka Hayasaka)
September 3, 2018, 2:51pm
2
「別のエクセル」の構造がわからないのでなんとも言えないのですが、DataTable型で取得した値は、
(DataTable型変数).Rows(y).Item(x)
で、x行y列目の値として取得できます(x、yともに0が基点になります)
単純に取得するとObject型になるので、実際にはItem(x).ToString() で文字列型にする、更に全体を「Int32.Parse( … ) 」で囲って数値型にする、等の処理が必要かと思います。
あとは程よくループで回して地道に探す、のが一番じゃないかなぁ、と思います。。。
(探すだけならLINQなり.Selectなり使えば一発なのですが、その隣に処理を、というと逆に面倒になりそうなので)
AshwinS2
(Ashwin S)
September 3, 2018, 2:52pm
3
Hi @saltyayumu
You can use for each row activity and use append range to iterate the loop
Thanks
Ashwin S
saltyayumu
(saltyayumu)
September 5, 2018, 4:26am
4
Honoka様
情報が不足している中、ご回答くださいましてありがとうございます!
Honoka様の回答を踏まえ検討しましたが、
シートの容量が膨大なのと、組み込みやメンテナンスが面倒そうというのと、
もっとシンプルなやり方があるように思えてきました…。
個人的に変数理解が乏しいこともありますので、
頂いたノウハウは別のところで応用させていきたいと思います。
ご回答、大変助かりました。
再びとなりますが、誠にありがとうございます。
saltyayumu
(saltyayumu)
September 5, 2018, 4:32am
5
Dear AshwinS2, Esq.
Thank you for answering for my quesiton,in spite of Japanese.
I try to use [For each row] activety, not just this problem.
And please forgive me for my bad English.