我是VBA的新手,所以遇到了一个问题,试图将某个字符串编号转换为IF验证的值编号。EXCEL VBA - 与excel公式类似的函数值
问题是。我充满了这样的事情列 “A”:
E/B:房屋01
E/B:房屋02
E/B:建筑/新别墅
E/B:建筑/贝拉卡萨
E/B:房屋03
所以,在我的代码,我想这与过去的2号填“B”柱,如果有号码或姓名,如果有ISN “T。
Set Rng = Range("A8:A" & Range("I" & Rows.Count).End(xlUp).Row)
For Each celula In Rng.SpecialCells(xlCellTypeVisible)
Select Case True
Case IsNumeric(Right(celula, 2)) = True
celula.Offset(0, 1).Value = Right((celula), 3)
Case Else
celula.Offset(0, 1).Value = Mid(celula, InStr(4, celula, "/") + 1, Len(celula))
End Select
Next celula
但是案例是数字(右(celula,2))=真从不是真的。它不捕获最后2个数字。但它的名称和返回“新别墅”和“贝拉卡萨”的作品没问题。我认为问题在于Right(celula,2)从来不是一个数字,即使是一个数字。
我想知道是否有一种方法可以在值中转换“Right(celula,2)”,就像在Excel中的= Value公式一样,以进行验证。 OBS:在尝试这种方式之前,我已经将excel公式应用于这些单元格,并且它能够工作,但是我想尝试这种方式来进行学习。
感谢
只需将您的代码和示例数据复制并粘贴到新的Excel工作表中即可使用。你确定数字后没有空格? 'Debug.Print“<”+ Right(celula,2)+“>”'确保(它应该打印'<01>','<02>'等)。 – ssarabando 2014-10-01 13:33:36
看起来不错。用它来测试它。可能是你没有选择正确的范围。 For Each celula In Selection Select Case True .... – causita 2014-10-01 13:35:14
我在自动过滤器后设置了rgn,这是问题所在。谢谢 – MVAmorim 2014-10-01 14:32:21