我刚开始使用VBA进行工作,几乎没有任何经验,因此非常感谢您的帮助/建议!
我正在处理自动报告,在该报告中,我需要使用设备号来查找属于它的数据。示例90902018436270200是fullNumber,所需的数字是18436。
在我复制并将数字从默认值更改为数字之前,数字也会显示为9.0902E + 16。
数字前的金额始终保持不变,但是所需的数字很少只有4位数字。
我尝试通过以下方式删除前几个数字:
If Left(Range("A5"), 1) = "9" Then
Range("A5").Value = WorksheetFunction.Replace(Range("A5").Value, 1, 4, "")
但是,当我使用该数字时,我认为这个数字实际上会变大,这是因为我可能必须以某种方式删除它的指数表示法。
在屏幕截图中,您可以看到较大的数字是我用公式编辑的数字。
左侧的数字表示要使用的设备的名称= vlookup,我需要过滤掉不必要的数字,否则它将无法识别要从哪一行获取数据。在另一张纸上,我有一个单元格,用户可以键入设备的编号,然后它应该找到与该设备的编号匹配的数据。但是,公式= Vlookup不会在原始/大数字中识别出所需的数字。
这是我到目前为止用于排列数据以使用excel公式的代码。
Sub CorrectNames()
'replaces complicated names to easier ones
Range("B3").Select
ActiveCell.FormulaR1C1 = "10"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "20"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "50"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "100"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "1000"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "200"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "2000"
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveCell.FormulaR1C1 = "500"
ActiveCell.Offset(0, 1).Range("A1").Select
'moves device digits to the left side and changes format
Range(Selection, Selection.End(xlDown)).Select
Selection.Cut
ActiveCell.Offset(0, -9).Range("A1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
Selection.NumberFormat = "0."
End Sub
Sub ExposeDevicedigits()
If Left(Range("A5"), 1) = "9" Then
Range("A5").Value = WorksheetFunction.Replace(Range("A5").Value, 1, 4, "")
End If
End Sub
答案 0 :(得分:1)
如果90902018436270200位于A5中,则= MID(text(A5,0),7,5)将返回“ 18436”(TEXT将A5的值转换为文本字符串,而忽略任何奇怪的格式。