[[20120424111911]] 『文字列で抜きたい』(悩める事務員) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『文字列で抜きたい』(悩める事務員)
お世話になりますがよろしくお願いします。
Bookを開かずにデータを抜きたくピッタリのモノを探し当てたのですが、文字列のデータを数値に変換して落ちてしまいます。
文字列のままにならないでしょうか?、ご存じの方はお教え下さい。
Function kGetDatCp(ByVal des As Range, ByVal sur$, ByVal st$, ByVal adr$) As Long
    Dim fol$, bk$
    bk = Dir(sur)
     If bk = "" Then kGetDatCp = 1: Exit Function
     fol = Left(sur, InStrRev(sur, "\"))
  On Error Resume Next
    With des
      If Err Then kGetDatCp = 2: Exit Function
         .Formula = "=IF('" & fol & "[" & bk & "]" & st & "'!" & adr & "="""","""",'" & fol & "[" & bk & "]" & st & "'!" & adr & ")"
      If Err Then kGetDatCp = 2: Exit Function
         .Value = .Value
     End With
End Function
Sub DETA引用()
    Dim sur$, st$, adr$, des As Range, rt&
       sur = "H:\加工日報" & "\" & Range("G1").Value & ".xls"

        st = "Sheet1"
       adr = "B2000"
        Set des = ActiveSheet.Range("C4:I500")
             rt = kGetDatCp(des, sur, st, adr)
End Sub


 >文字列のデータを数値に変換して落ちてしまいます。
 データを抜くファイルは、数字だけが入力されているセルを書式設定で文字列にしているって事ですか?
 If Err Then kGetDatCp = 2: Exit Function
    .Value = .Value
 の部分を、
 If Err Then kGetDatCp = 2: Exit Function 
    .Copy
    .PasteSpecial Paste:=xlPasteValues
 に変更してみたらどうでしょう?
(Jera)

Jera様、お世話になります。
バッチリ動きました。本当にありがとうございました。(悩める事務員)

ご無沙汰しています。
今回、パソコンが変わり2013になり拡張子が".xls"から".xlsm"に変わりましたら動かなくなりました。
対応の方法をご存知の方がいましたらお教えください。

(悩める事務員) 2015/07/01(水) 12:16


 >>動かなくなりました。 

 どのような不具合でしたか?
 ファイルが見つからない? 実行時にエラーになる?

 状況が見えないのですが、開こうとしているブックは、xls互換ブックですか?
 それとも、新しく xlsx なり xlsm なりに変換したブックですか?

 後者だとすると、マクロ内で指定しているブック名が ".xls" ですから
 If bk = "" Then kGetDatCp = 1: Exit Function で抜けてしまうとは思いますが。

(β) 2015/07/01(水) 12:39


β様、お世話になります。
エラーメッセージは出ません。
何も抜けなくて空っぽで空白になります。
ブック名は2015_06_30.xlsmで
 sur = "H:\加工日報" & "\" & Range("G1").Value & ".xlsm"
になおしました。

(悩める事務員) 2015/07/01(水) 14:04


コメントが付きませんが、ブックを開かずセルの値取得は***.xlsでしか対応しないのでしょうか?

(悩める事務員) 2015/07/02(木) 12:16


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.