在某些列上设置范围时,'方法'对象的范围'失败'

时间:2018-01-21 20:30:43

标签: excel vba

我知道已经提出了很多问题,但我发现这个错误有一个奇怪的例子。在我的代码中,我让用户选择一组列,然后我使用该选择来构建一个字符串(称为“bld”)来设置范围。当用户选择说出列A:FAA:AF时,一切都按预期工作,但是当选择U:AC时会弹出此错误。如果我直接写它代码运行正常,我已经检查'bld'实际上是$U4:$AC75,但它仍然无法正常工作。有关为什么会发生这种情况的任何想法?设置rng2 = ws2.Range(bld)是发生错误的位置。

Sub reformat()
Dim wb As Workbook, ws As Worksheet, ws2 As Worksheet 
Dim rng As Range, rng2 As Range, rng3 As Range, bld As String
Dim Ar As String, a As Range, b As Range, hrs As Double, man As String

Set wb = ActiveWorkbook
Set ws = wb.Sheets("Sheet")
Set ws2 = wb.Sheets("by_hours")
Set rng = ws.Range("H2:H" & ws.UsedRange.Rows(ws.UsedRange.Rows.Count).Row)
Set rng2 = Application.InputBox("Select Week range", , , , , , , 8)
bld = Left(rng2.Address, InStr(rng2.Address, ":") - 1) & "4" & _
           Right(rng2.Address, InStr(rng2.Address, ":")) & "75"
Set rng2 = ws2.Range(bld)

1 个答案:

答案 0 :(得分:1)

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 的代码,当输入范围为双字母列时,会返回缺少bid的字符串。此外,如果用户选择一系列单元格而不是整列,则会返回意外结果。

要修复,根本不要使用字符串操作,而是操纵所选范围

: