我有一个大型数据集,我正在使用excel。大约1000多列,接近100万行。
我的问题是我的许多号码都被格式化为文字。要解决此问题,我一直在使用复制粘贴>添加技术,添加一个空白单元格。
我的问题是我正在尝试宏此功能,但我无法弄清楚如何添加空白单元格。
我试图变得狡猾并让宏创建一个新行,执行添加,然后删除该行。但是,我似乎无法让它工作。
任何人都有解决方案吗?
答案 0 :(得分:1)
您需要仅选择包含值的单元格,而不是选择整个范围。我建议特殊细胞功能:
答案 1 :(得分:0)
使用VBA,您可以有条件地将目标值转换为双倍(或您选择的其他类型) 下面测试的例子假设:
Sheet1
ActiveWorkbook
抛开:在运行VBA之前保存你的工作可能总是一个好主意。干杯,快乐的编码。
Option Explicit
Sub convert_to_dbl()
Dim r As Long
Dim ws As Worksheet
Set ws = ActiveWorkbook.Sheets(1)
For r = 1 To FindLastRow(ws)
With ws
If .Cells(r, 1).Value <> "" Then
.Cells(r, 2).Value = CDbl(.Cells(r, 1).Value)
End If
End With
Next r
End Sub
Function FindLastRow(ws As Worksheet)
Dim LastRow As Long
If WorksheetFunction.CountA(Cells) > 0 Then
LastRow = Cells.Find(What:="*", After:=[A1], _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row
End If
FindLastRow = LastRow
End Function
答案 2 :(得分:0)
以下代码可以满足我的需求。
Sub psAdd()
Dim x As Range 'Just a blank cell for variable
Dim z As Range 'Selection to work with
Set z = Cells
Set x = Range("A65536").End(xlUp).Offset(1)
If x <> "" Then
Exit Sub
Else
x.Copy
z.PasteSpecial Paste:=xlPasteAll, Operation:=xlAdd
Application.CutCopyMode = False 'Kill copy mode
End If
x.ClearContents 'Back to normal
End Sub