[リストへもどる]
一括表示

投稿時間:2003/10/07(Tue) 09:14
投稿者名:hiro
URL :
タイトル:
文字の抽出です
こんにちは。Instr関数を使って"/"までの分と/以降は+1するソースの一部です。
ですが、これが昨日から考えても機能せず。なにがおかしいのでしょうか??

Public Sub Enter()
    col = ActiveCell.Column
    row = ActiveCell.row
    SNprev = Cells(row - 1, col).Value
If (row > 2) Then
    If Len(SNprev) = 19 And Val(SNprev) > 0 Then
        strSN1 = Left(SNprev, InStr(1, SNprev, "/") - 1)
        strSN2 = Right(SNprev, 2)
        strSN2 = CStr(CInt(strSN2) + 1)
        strSN2 = Application.Text(strSN2, "000")
        If Len(strSN2) > 4 Then End
        SNNew = strSN1 & "/" & strSN2
        Cells(row + 1, col) = SNNew

出来ればおかしい部分を指摘して下さい。お願いします。

投稿時間:2003/10/07(Tue) 09:50
投稿者名:イトウ
Eメール:
URL :
タイトル:
Re: 文字の抽出です
目的の動作がわかればなにか指摘できるでしょうが。
見たところ、シンタックスエラーも無いようなので、ひとまずおかしい部分はありません。

投稿時間:2003/10/07(Tue) 09:57
投稿者名:hiro
URL :
タイトル:
Re^2: 文字の抽出です
> 目的の動作がわかればなにか指摘できるでしょうが。

AA123456BB00000/000という番号があり、左から"/"の前までを抽出し、
右から000を抽出後、+1した値をセルに書き込むのです。
また、上のセルから取り出したいので、Cells(row-1,col).Valueを使っています。

ですが、機能しないのです。

投稿時間:2003/10/07(Tue) 10:03
投稿者名:LESIA
Eメール:
URL :
タイトル:
Re^3: 文字の抽出です
> AA123456BB00000/000という番号があり、左から"/"の前までを抽出し、
> 右から000を抽出後、+1した値をセルに書き込むのです。
> また、上のセルから取り出したいので、Cells(row-1,col).Valueを使っています。
>
> ですが、機能しないのです。

変数SNprevに"AA123456BB00000/000"が入っているとすると
Val(SNprev)は0になりますが…。

投稿時間:2003/10/07(Tue) 10:09
投稿者名:hiro
URL :
タイトル:
Re^4: 文字の抽出です
返信ありがとうございます。正直、助かります。

> 変数SNprevに"AA123456BB00000/000"が入っているとすると
> Val(SNprev)は0になりますが…。

Val(SNprev)=0にしたほうが良いということですか?

投稿時間:2003/10/07(Tue) 10:16
投稿者名:よねKEN
Eメール:
URL :
タイトル:
Re^5: 文字の抽出です
> > 変数SNprevに"AA123456BB00000/000"が入っているとすると
> > Val(SNprev)は0になりますが…。
>
> Val(SNprev)=0にしたほうが良いということですか?

If Len(SNprev) = 19 And Val(SNprev) > 0 Then

この条件式が真になることはないのでIF文の中の処理は実行されませんよ、
というおかしい部分のご指摘だと思います。
(Val(SNprev) > 0 の部分をどういう意図で書かれているのか知らないので、
どうなおすべきかまではわかりませんが)

投稿時間:2003/10/07(Tue) 10:20
投稿者名:hiro
URL :
タイトル:
Re^6: 文字の抽出です
よぬKENさんありがとうございます。
ここがおかしかったんですね。

> この条件式が真になることはないのでIF文の中の処理は実行されませんよ
> というおかしい部分のご指摘だと思います。
では、再チャレンジします。

> (Val(SNprev) > 0 の部分をどういう意図で書かれているのか知らないので、
>  どうなおすべきかまではわかりませんが)

ここは、他の条件があったので足しただけです。あしからず。