看板 Office 關於我們 聯絡資訊
軟體: Excel 版本: 2016 想用VBA來新增文字方塊到儲存格中間,目前寫到下面這樣: Dim textbox As String textbox = "A" Dim rng As Range: Set rng = Application.Selection Dim cel As Range For Each cel In rng With ActiveSheet.Shapes.AddTextbox(msoTextOrientationHorizontal, cel.Left + (cel.Width / 2) - 3, cel.Top - cel.Height, 50, 50) .TextFrame.Characters.Text = textbox .TextFrame.AutoSize = True End With Next cel 在預設列高的狀況下是沒什麼問題, 可是如果該列比較高的話,用Height來控制位置的話,新增的文字方塊就會跑掉位置 想請問有什麼解法呢? 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.253.28.82 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1518924945.A.D06.html ※ 編輯: noworneverev (111.253.28.82), 02/18/2018 11:37:41
soyoso: 將cel.height改減常數方式 02/18 11:59
soyoso: 如https://i.imgur.com/vCtnYZL.jpg 測試是以減15 02/18 11:59
S大您好,感謝您的回覆,可是用減常數的方式, 在不同列高的狀況下,還是不能讓文字方塊完全置中在選定的儲存格 https://i.imgur.com/VhaCItT.jpg 我在想應該有什麼用變數的方式可以達成在任一種列高都可以置中 本來是有試過用offset抓下一列的top數值來定位, 可是試一試後想到如果下一列不是預設列高還是會跑掉XD ※ 編輯: noworneverev (111.253.28.82), 02/18/2018 12:21:37
soyoso: 原po要的置中是指https://i.imgur.com/HRrhPSX.jpg這樣嗎 02/18 12:25
soyoso: 這是原文巨集碼在預設的列高16.5下所新增的文字方塊 02/18 12:26
soyoso: https://i.imgur.com/vgqXWuz.jpg 這是減常數的方式所產生 02/18 12:28
soyoso: 的文字方塊,結果不是原po要的嗎? 02/18 12:30
soyoso: 如是要以https://i.imgur.com/1HYmAjU.jpg h欄的結果的話 02/18 13:01
soyoso: 則以(50*0.42-cel.height)/2 02/18 13:01
soyoso: 因autosize,改以(21-cel.height)/2 02/18 13:15
soyoso: 如有可能多行(如L欄)的話,則以 02/18 13:32
soyoso: https://i.imgur.com/84R33Oy.jpg 02/18 13:32
非常感謝您!h欄就是我需要的,獲益良多,再次感謝 ※ 編輯: noworneverev (111.253.28.82), 02/18/2018 14:16:16