EXCEL表格如何把一千多个格子里的数字统一减少0.1呢

作者&投稿:止采 (若有异议请与网页底部的电邮联系)

以此为例,当我们要在每个单元格都减掉0.1

那么我们在空白的区域任意单元格内输入0.1

1、复制这个0.1

2、选择数字区域

3、如下图

第②步区域选择后,点击鼠标右键,按照步骤选择,会弹出下一个对话框

4、按以下步骤完成

①:选择数值,目的是不 改变原区域内的格式设置

②:选择减,意思是用复制的单元格去减选择的区域的整体被减数

③:点击确定

结果如你所愿,所有的选中的数值,都被减掉了0.1



前几个月在淘宝上接单做的一个小插件,在这里分享一下。代码如下:

Public Sub MY_plus(control As IRibbonControl)

   Call P_Plus

End Sub

Public Sub MY_minus(control As IRibbonControl)

   Call P_Minus

End Sub


Sub P_Plus() '加

   Dim S As String

   Dim Arr

   Dim Gs As Integer

   Dim SZArr() As Double

   Dim M As Integer

   Dim HSBj As String

   S = GetClipBoardString

   If S = "" Then Exit Sub

   If InStr(S, Chr(9)) > 0 Then

      HSBj = "H" '横向

   Else

      If InStr(S, Chr(10)) > 0 Then

         HSBj = "S" '竖向

      Else

         HSBj = "Y" '仅一个

      End If

   End If

   Select Case HSBj

   Case "H"

      Arr = Split(S, Chr(9))

      Gs = UBound(Arr) + 1

      ReDim SZArr(1 To Gs)

      For M = 1 To Gs

         SZArr(M) = Val(Arr(M - 1))

      Next M

   Case "S"

      Arr = Split(S, Chr(10))

      Gs = UBound(Arr)

      ReDim SZArr(1 To Gs)

      For M = 1 To Gs

         SZArr(M) = Val(Arr(M - 1))

      Next M

   Case "Y"

      Gs = 1

      ReDim SZArr(1 To 1)

      SZArr(1) = Val(S)

   End Select

   If Gs = 0 Then Exit Sub

   Dim myR As Range

   Dim M_Addr As String, myT As String

   Dim ksHH As Integer, jsHH As Integer, Hh As Integer

   Dim ksLH As Integer, jsLH As Integer, Lh As Integer

   Dim M_ksA As String, M_jsA As String

   M_Addr = Selection.Address

   Arr = Split(M_Addr, ",")

   For M = 0 To UBound(Arr)

      myT = Arr(M)

      M_ksA = Split(myT, ":")(0)

      M_jsA = Split(myT, ":")(1)

      ksHH = Range(M_ksA).Row

      ksLH = Range(M_ksA).Column

      jsHH = Range(M_jsA).Row

      jsLH = Range(M_jsA).Column

      If jsLH - ksLH + 1 = Gs Then

         For Hh = ksHH To jsHH

           For Lh = ksLH To jsLH

              If IsNumeric(Cells(Hh, Lh)) Then

                 Cells(Hh, Lh) = Cells(Hh, Lh).Value + SZArr(Lh - ksLH + 1)

              End If

           Next Lh

         Next Hh

      End If

   Next M

End Sub

Private Function GetClipBoardString() As String

    On Error Resume Next

    Dim MyData As New DataObject

    GetClipBoardString = ""

    MyData.GetFromClipboard

    GetClipBoardString = MyData.GetText

    Set MyData = Nothing

End Function

Sub P_Minus() '减

   Dim S As String

   Dim Arr

   Dim Gs As Integer

   Dim SZArr() As Double

   Dim M As Integer

   Dim HSBj As String

   S = GetClipBoardString

   If S = "" Then Exit Sub

   If InStr(S, Chr(9)) > 0 Then

      HSBj = "H" '横向

   Else

      If InStr(S, Chr(10)) > 0 Then

         HSBj = "S" '竖向

      Else

         HSBj = "Y" '仅一个

      End If

   End If

   Select Case HSBj

   Case "H"

      Arr = Split(S, Chr(9))

      Gs = UBound(Arr) + 1

      ReDim SZArr(1 To Gs)

      For M = 1 To Gs

         SZArr(M) = Val(Arr(M - 1))

      Next M

   Case "S"

      Arr = Split(S, Chr(10))

      Gs = UBound(Arr)

      ReDim SZArr(1 To Gs)

      For M = 1 To Gs

         SZArr(M) = Val(Arr(M - 1))

      Next M

   Case "Y"

      Gs = 1

      ReDim SZArr(1 To 1)

      SZArr(1) = Val(S)

   End Select

   If Gs = 0 Then Exit Sub

   Dim myR As Range

   Dim M_Addr As String, myT As String

   Dim ksHH As Integer, jsHH As Integer, Hh As Integer

   Dim ksLH As Integer, jsLH As Integer, Lh As Integer

   Dim M_ksA As String, M_jsA As String

   M_Addr = Selection.Address

   Arr = Split(M_Addr, ",")

   For M = 0 To UBound(Arr)

      myT = Arr(M)

      M_ksA = Split(myT, ":")(0)

      M_jsA = Split(myT, ":")(1)

      ksHH = Range(M_ksA).Row

      ksLH = Range(M_ksA).Column

      jsHH = Range(M_jsA).Row

      jsLH = Range(M_jsA).Column

      If jsLH - ksLH + 1 = Gs Then

         For Hh = ksHH To jsHH

           For Lh = ksLH To jsLH

              If IsNumeric(Cells(Hh, Lh)) Then

                 Cells(Hh, Lh) = Cells(Hh, Lh).Value - SZArr(Lh - ksLH + 1)

              End If

           Next Lh

         Next Hh

      End If

   Next M

End Sub

使用方法:问题如图

第一步选择B2复制

第二步选择D2:D5,点击+按钮,结果:



~

一个EXCEL表格中含有多个工作表,怎么分出来?
答:1、首先打开EXCEL表格,在表格中的加载项中找到“方方格子”,选择汇总拆分功能。2、然后在下拉菜单中,选择拆分工作表的功能。3、在弹出的菜单中,根据自己需要设定拆分规则。这里进行关键字拆分。表头占据1行,拆分字在A列,然后点击确定。4、程序运行完成后,会弹出提示,点击确定关闭。5、这样在表格...

如何快速将多行多列数据合并成一个表格
答:如图 我选中了底纹为浅蓝色的6个格子 提要:如果是整列或整行 ,就对应要找整列空行来装 3.选中蓝色左上角,在框中输入公式"=A1/100"提要:其中A1代表了除数是格子A1中的值,也就是绿色区域左上角的值 4.按下回车后第一个值就算出来了 5.接下去你要做的就是把指针移动到已经有结果的方框右...

在Excel表格中,怎么使一个数字占用两个格子?
答:1、首先打开需要编辑的excel,鼠标左键选中表格中两个格子。2、然后在新的界面里鼠标右键单击并点击选择“设置单元格格式”按钮。3、之后在新的界面里在“垂直对齐”下方点击选择“居中”,然后点击选择勾选“合并单元格”按钮点击确定。4、然后在新的界面里就可以看到表格中使一个数字占用两个格子了。

Excel做表格的时候怎么吧一个大格子分成三个小格子啊?
答:一、设置单元格格式 1、打开Excel,选中需要拆分的单元格。2、点击右键,选择“设置单元格格式”。3、切换到“对齐”选项卡。4、将“合并单元格”前面的勾去掉即可。二、取消合并 选中表格中需要拆分的单元格,点击“开始”页面中对齐方式的合并居中图标中的小倒三角,然后点击取消单元格合并就可以了。...

表格如何把两个格子合并成一个
答:与其他办公室应用程序一样,它包括联合的服务器和基于互联网的服务。从2007版的Office被称为“OfficeSystem”而不叫“OfficeSuite”,反映出它们包括服务器的事实。更多关于表格怎么把两个格子合并成一个,进入:https://m.abcgonglue.com/ask/f7abce1615829680.html?zd查看更多内容 ...

excel表格如何拆分成两个表格?
答:把excel表格中一个格子里面的文字拆分成两个格子,可以使用分列完成。Excel是微软公司出品的Office系列办公软件中的一个组件,Excel的中文含义就是“超越”。确切地说,它是一个电子表格软件,可以用来制作电子表格、完成许多复杂的数据运算,进行数据的分析和预测并且具有强大的制作图表的功能;现在的新版本...

在excel中怎么在一个大的单元格中插入很多的小单元格
答:4、单击,新表将显示在文档中。您可以对表格和文本进行简单的调整。然后选择一个单元格并键入“浙江”。5、鼠标滑过“浙江”单元格,右键单击弹出菜单,点击“拆分单元格”。6、在拆分单元格选项中,输入您需要的列数和行数,在这里选择5列,并在5之后输入“OK”。7、点击OK后,原来的1个单元格会...

excel里很多空白窗格怎么一起删除
答:您好,方法:1、打开XCEL表格,选中所有单元格,按Ctrl+G打开定位,点击“定位条件”。2、在定位条件中,选择“空值”。3、点击“删除”。4、点击“下方单元格上移”。5、删除后效果。

如何在EXCEL中将多个单元格内容合并到一个单元格中
答:因此公式为:=CONCATENATE(A1,B1,C1,D1,E1,F1)或者:=A1&B1&C1&D1&E1&F1唯一缺点就是需要逐个单元格的选择延展说明:CONCATENATE 函数可将最多 255 个文本字符串合并为一个文本字符串。联接项可以是文本、数字、单元格引用或这些项的组合。例如,如果您的工作表的单元格 A1 中包含某个人的名字,...

怎么把表格的格子变大
答:详细步骤:1、选中需要调整的单元格。2、点击行高。3、点击行和列里面的行高,设置数值,点击确定。4、点击列宽。5、点击行和列里面的列宽,设置数值,点击确定。相关简介 Microsoft Excel是Microsoft为使用Windows和Apple Macintosh操作系统的电脑编写的一款电子表格软件。直观的界面、出色的计算功能和图表工具...