【发布时间】:2018-06-05 00:42:11
【问题描述】:
我已经搜索过 SO,但未能成功找到解决方案 - 您如何通过 Excel vba 识别列中采用科学计数法的单元格?
这是我试图通过带有科学记数法的自动过滤行来隔离的代码...
Private Sub cmdMoveScientificNotation_Click()
Dim objExcel As Excel.Application
Dim objWB As Excel.Workbook
Dim objWBtoAdd As Excel.Workbook
Dim newWS As Excel.Worksheet
Dim objWS As Excel.Worksheet
Dim i As Long
Dim Lrow As Long
Dim strSearch As String
Dim myRange As Range
Dim Cell As Range
Set objExcel = New Excel.Application
objExcel.Visible = True
Set objWB = Workbooks.Open("C:\TEST\Drop\Bank.xlsx", , False)
Set objWBtoAdd = Workbooks.Add
Set newWS = objWBtoAdd.ActiveSheet
Set objWS = objWB.ActiveSheet
With objWS
Lrow = .Range("A" & .Rows.Count).End(xlUp).Row
myRange = .Range("A1:V" & Lrow)
For Each Cell In myRange
If (Cell.NumberFormat = "0.00E+00") Then
.AutoFilter Field:=2, Criteria1:=strSearch
.SpecialCells(xlTypeVisible).EntireRow.Copy
End If
Next Cell
End With
newWS.PasteSpecial
End Sub
【问题讨论】:
-
您需要在 VBA 中专门完成此操作吗?还是您只需要目视识别?如果你只想知道“哪些是科学记数法,它们是中间带“E”的数字,比如
123E+00 -
有时人们会想太多,并认为他们需要 VBA,而实际上他们并不需要。有时 VBA 太过分了,所以为什么不提出一个 OP 可能不知道的简单解决方案 - 即使 OP 无法使用该解决方案,未来搜索此问题的人可能会发现答案很有用。
-
@urdearboy “有时”是轻描淡写的!如前所述,与 VBA 所需的知识水平相比,所问内容所需的知识水平。我认为 OP 正在寻找的答案甚至不是使用数字格式对话框,而是 寻找 E! :)