EXCEL VBA复制含公式数据源替换为数值

方式一:.PasteSpecial Paste:=xlPasteValues
Sub Copy_Values()  '选择性粘贴为数值
    Dim v_Rows As Long   '行号
    Dim v_col As Integer '列号

    'Sheets("Sheet1").Select  '工作表 选择方式一
    Sheets(1).Select          '工作表 选择方式二
    
    v_col = 1
    If Cells(1, v_col).Value < 30 Then    '列第1个单元格值条件
       'Columns(1).Select
       'Sheets("Sheet1").Columns(1).Copy  '整列拷贝方式之一,较少用
       
       v_Rows = Sheets(1).UsedRange.Cells(Sheets(1).UsedRange.Rows.Count, v_col).Row  '最后一个非空单元格行号
       With Worksheets(1)
          '连带公式复制 '.Range(.Cells(1, v_col), .Cells(v_Rows, v_col)).Copy .Range(.Cells(1, v_col), .Cells

(v_Rows, v_col))
          
          '以下两句粘贴为数值操作
          .Range(.Cells(1, v_col), .Cells(v_Rows, v_col)).Copy  '粘贴为数值 先拷贝
          
          '选择性粘贴为数值
          .Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
          
       End With
    End If
    
    Sheets(1).Range("B1").Select
    Application.CutCopyMode = False '清空剪贴板
    Application.ScreenUpdating = True
    
    MsgBox "拷贝为数值完成", vbInformation, "提示"
End Sub


方式二:使用数组
Sub CheckCell()
  Dim v_Rows As Long  '行数变量
  Dim i As Long       '循环变量
  Dim col_1 As Integer  '数据所在列号
  Dim v_Array() As String  '数组

  'v_Rows = [A65536].End(xlUp).Row  '取行数 方式之一
  col_1 = 1  '测试列号
  v_Rows = ActiveSheet.Cells(Rows.Count, col_1).End(xlUp).Row  '对应列最后一个非空单格行号

  ReDim v_Array(1 To v_Rows)  '根据行数调整数组大小

  If Cells(1, 1).Value < 19 Then
     For i = 1 To v_Rows
        v_Array(i) = Cells(i, 1)   '单元格内容赋给数组
     Next i
  
     For i = 1 To v_Rows
        Cells(i, col_1).Value = v_Array(i)  '数组内容填回单元格
     Next i
  
     MsgBox "第" & col_1 & "列 " & v_Rows & "行 覆盖RANDBETWEEN()完成", vbOKOnly, "提示"
  Else
     MsgBox "第" & col_1 & "列 " & v_Rows & "行 数据未调整", vbExclamation, "提示"
  End If

End Sub

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值