网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月20日漏签0天
vba吧 关注:17,054贴子:66,679
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 2回复贴,共1页
<<返回vba吧
>0< 加载中...

EXCEL里 如何将相同字符对齐?

  • 只看楼主
  • 收藏

  • 回复
  • fly街角De风铃_
  • 无名之辈
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
A列是源文件-音标 , B列是手动将其字符 æ 上下竖直对齐。如图所示,B列手动后 应可看出,并不是完全的对齐。请教各位老师,怎样用 公式 或者 VBA 等 方法,将文件 自动对齐。请指教。


  • 菠萝蜜
  • 初涉江湖
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
'上次写过,稍作修改:
Option Explicit
Sub aa()
 Dim i, j, t, arr, maxcolsize, defaultfontsize, brr, n As Long
 defaultfontsize = [a1].Font.Size
 Application.ScreenUpdating = False
 arr = Range("a1:b" & [a65536].End(xlUp).Row)
 ReDim brr(1 To UBound(arr, 1), 1 To 2)
 With [b:c]
  .ClearContents
  .Font.Size = defaultfontsize
  .Font.Name = "GWIPA"
 End With
 For i = 1 To UBound(arr, 1)
  t = Split(arr(i, 1), "Q")
  arr(i, 1) = t(0) & "Q": arr(i, 2) = t(1)
 Next
 [b1].Resize(UBound(arr, 1), 1) = arr
 [b:b].Columns.AutoFit: maxcolsize = [b:b].Width
 For i = 1 To UBound(arr, 1)
  [c:c].Font.Size = defaultfontsize
  Cells(1, 3) = arr(i, 1): [c:c].Columns.AutoFit
  If [c:c].Width < maxcolsize Then
   For j = 1 To 1000
    Cells(1, 3) = Space(1) & Cells(1, 3)
    [c:c].Columns.AutoFit: t = [c1].Width
    If t >= maxcolsize Then Exit For
   Next
   brr(i, 1) = j
   If t > maxcolsize Then
    For j = defaultfontsize To 1 Step -0.5
     Cells(1, 3).Characters(1, 1).Font.Size = j
     [c:c].Columns.AutoFit: t = [c:c].Width
     If t <= maxcolsize Then
      If n > 0 Then
       brr(i, 2) = j + IIf(maxcolsize - t < n - maxcolsize, 0, 0.5)
      Else
       brr(i, 2) = j
      End If
      n = 0: Exit For
     End If
     n = t
    Next
   Else
    brr(i, 2) = defaultfontsize
   End If
   Cells(1, 3).Font.Size = defaultfontsize
  Else
   brr(i, 1) = 0: brr(i, 2) = defaultfontsize
  End If
 Next
 For i = 1 To UBound(arr, 1)
  arr(i, 1) = Space(brr(i, 1)) & arr(i, 1) & arr(i, 2)
 Next
 [b1].Resize(UBound(arr, 1), 1) = arr
 For i = 1 To UBound(arr, 1)
  With Cells(i, 2)
   .Characters(1, 1).Font.Size = brr(i, 2)
   .Characters(InStr(Cells(i, 2), "Q"), 1).Font.Color = vbRed
  End With
 Next
 [b:b].Columns.AutoFit
 Application.ScreenUpdating = True
End Sub


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回vba吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示