当看似试图获得相同的范围时获得不同的结果

时间:2018-02-24 12:56:21

标签: excel vba excel-vba

我遇到了一个问题也可能是一个错误,无论哪种方式,我不知道如何解决它,并希望得到任何帮助:)

i2 = 2
plz1 = Worksheets("Sheet2").Range("B" & i2)
plz2 = Worksheets("Sheet2").Range("C" & i2)

B2为89999,C2为90000.因此,运行此代码时,plz1为89999,plz 2为“90000”(注意引号)。

所以:

plz1 = 89999
plz2 = "90000"

这是一个非常严重的问题,因为我想创建一个范围:

Range(plz1 & ":" & plz2)

我不知道我是否只是做了一个非常明显的愚蠢错误,或者它是否是一个错误......

我真的很感激我能得到的任何建议! :))

谢谢,NiceRice

2 个答案:

答案 0 :(得分:0)

也许你可以试试这个?

Sub Combined_range()
i2 = 2
Sheets("Sheet2").Range ("B" & i2 & ":C" & i2)
End Sub

答案 1 :(得分:0)

不确定是否要构建一系列数字或一系列行。

以下是如何处理文本90000或" 90000"在一个牢房里。此外,还有一个testNumber,看它是否在plz1和plz2之间。

Option Explicit
Sub test()

Dim i2 As Long
Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet2") 'Change as appropriate

Dim plz1 As Long
Dim plz2 As Long

i2 = 2

'Get rid of any "" if present in string

If InStr(1, ws.Range("C" & i2), Chr(34)) > 0 Then
    ws.Range("C" & i2) = Application.WorksheetFunction.Substitute(ws.Range("C" & i2), Chr(34), "")
End If

On Error GoTo NotConverted

plz1 = CLng(ws.Range("B" & i2))
plz2 = CLng(ws.Range("C" & i2))

Dim myRange As Range
Set myRange = ws.Range(plz1 & ":" & plz2)

MsgBox myRange.Address

Dim testNumber As Long
testNumber = 1238

If testNumber >= plz1 And testNumber <= plz2 Then
    MsgBox "testNumber is between " & plz1 & " and " & plz2
End If

Exit Sub

NotConverted:
MsgBox "The contents of either cell B" & i2 & " or C" & i2 & " could not be converted to a number."

End Sub