0
I持つセルA1に、この式 と以下のような簡単なExcelの表:制限がテキストとしてフォーマットさ
= MID(B1;1;2))
私に30
A B C
1 30 30:30
2
3
4
5
の値を与えます今度は、マクロに以下のループを適用したい:
Sub test()
Do
first_row = Application.InputBox("Below which row new row(s) should be inserted?" _
& vbCr & "Min: " & Sheets("Sheet1").Range("A1") & " Max: 500")
If first_row = False Then Exit Sub
If first_row > 500 Or first_row < Sheets("Sheet1").Range("A1") Then MsgBox ("Row has to be >= " & Sheets("Sheet1").Range("A1").Value & " and <= 500")
Loop Until first_row <= 500 And first_row >= Sheets("Sheet1").Range("A1") Or first_row = False
End Sub
このマクロでは、ユーザーは数字を入力する必要があるメッセージボックスを取得します。この数値はセルA1の値(この例では30)と500の間にある必要があります。
ただし、ユーザーが100を超える数値を入力すると、ループは30〜500 これは100未満の値しか受け入れません。
これまでのところ、 "TEXT"と書かれたセルB1によって問題が発生している可能性があるとわかりました。それ以外の場合は、このセルで「30:30」を使用することはできません。
したがって、私は次のようにA1に数式を変更しようとしました:
= VALUE(MID(B1;1;2)))
それない仕事が、その後システムはまた、30
以下の値は、あなたがどのように解決するために、任意のアイデアを持っていますができますこの問題?
問題がA1' 'の値が、[Application.InputBox(https://msdn.microsoft.com/en-us/library/office/ff839468.aspx)の戻り値ではありません。これは、 'Type:= 1'を使うか、' Val(first_row) 'で変換するまでテキストになります。 –