将“开始”和“添加到每个单元格数据的末尾”
我有一个相当大的Excel CSV文件,我需要添加"
和"
到每个单元格的开始和结束。
单元格包含混合文本,无论是否
- 数字
- 文本
- 链接
所有我需要添加引号到每个单元格的开始和结束。
我怎样才能做到这一点?
我已经从Excel中调整了这个代码, 在公式栏中显示了前导零
它使用变体数组来提高速度,只更新电子表格的UsedRange
部分
- 按Alt和F11一起去VBE
- 插入模块
- 复制并粘贴下面的代码
- 按Alt和F11一起回到Excel
- 从“开发工具”选项卡运行macros
如果你愿意的话,它可以适应忽略空白单元 – 让我知道
Sub AddStrings() Dim rng1 As Range Dim rngArea As Range Dim strRep1 As String Dim strRep2 As String Dim lngRow As Long Dim lngCol As Long Dim lngCalc As Long Dim X() strRep1 = """" strRep2 = """" ActiveSheet.UsedRange Set rng1 = ActiveSheet.UsedRange 'Speed up the code by turning off screenupdating and setting calculation to manual 'Disable any code events that may occur when writing to cells With Application lngCalc = .Calculation .ScreenUpdating = False .Calculation = xlCalculationManual .EnableEvents = False End With 'Test each area in the user selected range 'Non contiguous range areas are common when using SpecialCells to define specific cell types to work on For Each rngArea In rng1.Areas 'The most common outcome is used for the True outcome to optimise code speed If rngArea.Cells.Count > 1 Then 'If there is more than once cell then set the variant array to the dimensions of the range area 'Using Value2 provides a useful speed improvement over Value. On my testing it was 2% on blank cells, up to 10% on non-blanks X = rngArea.Value2 For lngRow = 1 To rngArea.Rows.Count For lngCol = 1 To rngArea.Columns.Count 'replace the leading zeroes X(lngRow, lngCol) = strRep1 & X(lngRow, lngCol) & strRep2 Next lngCol Next lngRow 'Dump the updated array sans leading zeroes back over the initial range rngArea.Value2 = X Else 'caters for a single cell range area. No variant array required rngArea.Value = strRep1 & rngArea.Value2 & strRep2 End If Next rngArea 'cleanup the Application settings With Application .ScreenUpdating = True .Calculation = lngCalc .EnableEvents = True End With End Sub
用手:
- 将第一个单元格值更改为
=""""&A1&""""
- 将这个单元格格式拖到整个页面
或者通过vbmacros