Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


42880 / 76735 ←次へ | 前へ→

【38916】Re:SELLの指定法について
発言  ハト  - 06/6/14(水) 12:00 -

引用なし
パスワード
   こんにちは

▼わいわい さん:
>いつもお世話になります。
>ファイルの指定法について教えてください。
>UserForm3の規則(textbox内の文字で読取列を指定)に従い、Private Sub CommandButton3_Click()で開いた外部ファイル(シートはComboBox1で選択)から、CommandButton2_Click()にてデータを取込もうとしています。
>以下のマクロで動いてはいるのですが、2つのファイルを操作しているので元ファイル(マクロのある)を操作するとき
>>Workbooks("Mk4.XLS").Worksheets("条件表").Range("A3:A65536"))
>のように指定しています。これですと将来ファイル名を変更したとき問題となるので良い方法を教えてください。Me.??で出来るのでしょうか?
>
この件についてはハチさんが回答されている通りです

>______________________________________________________
>あと自分の分かる範囲でマクロを書いていますので、御覧のように野暮ったいものとなっています。何かアドバイスを頂ければ幸いです。

気が付いたところでは

Workbooks("Mk4.XLS").Worksheets("条件表")
が何度も出てきますので、メンテを考えると

Dim MWS As Worksheet

Set MWS = Workbooks("Mk4.XLS").Worksheets("条件表")
(または Set MWS = ThisWorkbook.Worksheets("条件表") )

として、
> l = Application.Max(Workbooks("Mk4.XLS").Worksheets("条件表").Range("A3:A65536"))
等を
l = Application.Max(MWS.Range("A3:A65536"))

のようにしておくと修正するのが1箇所ですみます


>'読みとり行数の取得
> With Workbooks(FILE_Name).Worksheets(Sheet_Name)
>  For i = 0 To 65534
>   If .Cells(65536 - i, DATA(1, 2)).Value <> "" Then
>    DATA_Row = .Cells(65536 - i, DATA(1, 2)).Row
>    Exit For
>   End If
>Next i
> End With
ここはループ処理をしなくても
 Dim mR As Range

 With Workbooks(FILE_Name).Worksheets(Sheet_Name)
    Set mR = .Cells(65535, DATA(1, 2)).End(xlUp)
    DATA_Row = mR.Row
 End With

で求められます

_______________________________________________________
>Private Sub CommandButton3_Click()

>    FILE_Pass.Value = varRet
>    For j = 1 To 256
>      If Left(Right(varRet, j), 1) = "\" Then
>        FILE_Name = Right(varRet, j - 1)
>        Exit For
>      End If
>    Next j
ここもループ処理ではなく

    j = InStrRev(varRet, "\")
    FILE_Name = Right(varRet, Len(varRet) - j)

で求められます

0 hits

【38910】SELLの指定法について わいわい 06/6/14(水) 10:28 質問
【38911】Re:SELLの指定法について ハチ 06/6/14(水) 10:55 発言
【38916】Re:SELLの指定法について ハト 06/6/14(水) 12:00 発言
【38920】Re:SELLの指定法について わいわい 06/6/14(水) 13:06 お礼

42880 / 76735 ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free