Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 6421|回复: 22

[已解决]VBA问题提问

[复制链接]
发表于 2017-10-23 15:36 | 显示全部楼层 |阅读模式
我想在Excel表中,使用VBA宏代码将“合同号”这一列剪切到新建的sheet2中,将合同号的后4位加大字体,并加粗,然后将合同号再剪切粘贴到合同明细A列中。
最佳答案
2017-10-23 16:27
Sub 直接改()
Dim RG As Range
With ActiveSheet
For Each RG In .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
   With RG.Characters(Len(RG) - 3, 4).Font
          .FontStyle = "加粗"
          .Size = .Size + 1
   End With
Next
End With
End Sub
Sub 复制粘贴()
Dim SH As Worksheet, RG As Range
Set SH = ActiveSheet
  Sheets.Add(, Sheets(Sheets.Count)).Name = 2   '创建工作表命名为2
  SH.Range("a:a").Copy Sheets("2").Range("a:a")
With ActiveSheet
  For Each RG In .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
   With RG.Characters(Len(RG) - 3, 4).Font
          .FontStyle = "加粗"
          .Size = .Size + 1
   End With
  Next
  .Range("a:a").Copy SH.Range("a:a") '粘贴回数据
End With
'Sheets("2").Delete '删除工作表
End Sub

合同明细2017-10-12--津东.zip

11.52 KB, 下载次数: 5

 楼主| 发表于 2017-10-27 13:01 | 显示全部楼层
0126 发表于 2017-10-25 18:06
嗯,没有保存其他视频资料,没有找过,你可以在网上搜一下或者在这个网站搜

求助:(1)编辑表格         1.将表格填充为:白色,背景1,深色5%;         2.表格加边框:标题列只要最下方的边框;
         3.优惠价列按升序排序;
         4.买家列将“天津市万合钢铁销售有限公司”缩写为“万合钢铁”;
         (2)页面设置并打印表格
         1.页面设置为“横向”;
         2.页边距:上:2.54/下:0/左:0.4/右:0.4;
         3.居中方式:水平;
         4.打印表格
         请问(1)和(2)可以合并为一个宏代码吗,怎么合并
          (3)合同状态可否进行筛选,将“过期/作废/中止”的合同筛选后删除;
          (4)1.优惠价一列一致的,可否将对应业务人员一列进行合并居中;
                  2.可否在业务人员上键入-330=优惠价-330,例如:-330=2660-330=2330,键入结果为:-330=2330;
                  3.将结果加粗,增大字号为11。

合同明细2017-10-02--万合.zip

10.06 KB, 下载次数: 4

合同明细2017-10-02--万合--设置后.rar

10.07 KB, 下载次数: 3

回复

使用道具 举报

发表于 2017-10-23 16:27 | 显示全部楼层    本楼为最佳答案   
Sub 直接改()
Dim RG As Range
With ActiveSheet
For Each RG In .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
   With RG.Characters(Len(RG) - 3, 4).Font
          .FontStyle = "加粗"
          .Size = .Size + 1
   End With
Next
End With
End Sub
Sub 复制粘贴()
Dim SH As Worksheet, RG As Range
Set SH = ActiveSheet
  Sheets.Add(, Sheets(Sheets.Count)).Name = 2   '创建工作表命名为2
  SH.Range("a:a").Copy Sheets("2").Range("a:a")
With ActiveSheet
  For Each RG In .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
   With RG.Characters(Len(RG) - 3, 4).Font
          .FontStyle = "加粗"
          .Size = .Size + 1
   End With
  Next
  .Range("a:a").Copy SH.Range("a:a") '粘贴回数据
End With
'Sheets("2").Delete '删除工作表
End Sub
回复

使用道具 举报

发表于 2017-10-23 16:32 | 显示全部楼层
Private Sub CommandButton1_Click()
   For i = 2 To Range("A65536").End(xlUp).Row
      With Cells(i, 1).Characters(Start:=20, Length:=4).Font
        .Name = "宋体"
        .FontStyle = "加粗"
        .Size = 12
    End With
   Next
End Sub
回复

使用道具 举报

 楼主| 发表于 2017-10-25 12:40 | 显示全部楼层
0126 发表于 2017-10-23 16:27
Sub 直接改()
Dim RG As Range
With ActiveSheet

谢谢大师,请问在合同号后4位前再加上2个空格怎么加在宏代码中?
回复

使用道具 举报

发表于 2017-10-25 14:27 | 显示全部楼层
elektra2017 发表于 2017-10-25 12:40
谢谢大师,请问在合同号后4位前再加上2个空格怎么加在宏代码中?

RG = Left(RG, Len(RG) - 4) & "  " & Right(RG, 4)
字符直接拆分后连接
RG.Replace Right(RG, 4), "  " & Right(RG, 4)
替换字符

回复

使用道具 举报

 楼主| 发表于 2017-10-25 16:14 | 显示全部楼层
0126 发表于 2017-10-25 14:27
RG = Left(RG, Len(RG) - 4) & "  " & Right(RG, 4)
字符直接拆分后连接
RG.Replace Right(RG, 4), "   ...

请大师将加空格的代码放在整个代码里,空格空两个格就可以,谢谢
回复

使用道具 举报

 楼主| 发表于 2017-10-25 16:23 | 显示全部楼层
大师:如果直接拆分加空格的话,后4位就又变回不增大和加粗的状态了。
回复

使用道具 举报

发表于 2017-10-25 17:04 | 显示全部楼层
本帖最后由 0126 于 2017-10-25 17:10 编辑
elektra2017 发表于 2017-10-25 16:14
请大师将加空格的代码放在整个代码里,空格空两个格就可以,谢谢


  For Each RG In .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
     可以放在这里
   With RG.Characters(Len(RG) - 3, 4).Font
          .FontStyle = "加粗"   
          .Size = .Size + 1   
     可以放在这里
   End With
     可以放在这里
  Next

是只有添加两个空格啊,你不是吧那二句代码都加进去了吧,
只用添加其中一句代码就可以,看你喜好,


  列如:For Each RG In .Range(.Cells(2, 1), .Cells(.Cells(Rows.Count, 1).End(xlUp).Row, 1))
           RG = Left(RG, Len(RG) - 4) & "  " & Right(RG, 4)
   With RG.Characters(Len(RG) - 3, 4).Font
          .FontStyle = "加粗"   
          .Size = .Size + 1   
   End With
  Next
回复

使用道具 举报

 楼主| 发表于 2017-10-25 17:07 | 显示全部楼层
谢谢大师,请问您的VBA是怎么学的?
回复

使用道具 举报

发表于 2017-10-25 17:15 | 显示全部楼层
elektra2017 发表于 2017-10-25 17:07
谢谢大师,请问您的VBA是怎么学的?

最初是在网上百度文库里面搜索vba学习文档学习的,学的乱七八糟的,后来是看兰大的80集vba学习视频才慢慢补齐知识面,网站里面有那个视频连接你可以看看,

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-16 21:21 , Processed in 0.265893 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表