Vba 范围。左V/s形状。左
我有一本五页的工作簿。每张纸都定义了一个打印区域,我想在打印区域的右上角插入word art。我正在使用下面的代码。 问题是形状出现在图纸的任何位置,而不是打印区域的右上角。 有什么建议吗Vba 范围。左V/s形状。左,vba,excel,Vba,Excel,我有一本五页的工作簿。每张纸都定义了一个打印区域,我想在打印区域的右上角插入word art。我正在使用下面的代码。 问题是形状出现在图纸的任何位置,而不是打印区域的右上角。 有什么建议吗 Sub test() Dim col As String, row As Long, rng As Range Dim sht As Worksheet, str_val As String Dim shp As Shape For Each sht In ThisWorkboo
Sub test()
Dim col As String, row As Long, rng As Range
Dim sht As Worksheet, str_val As String
Dim shp As Shape
For Each sht In ThisWorkbook.Sheets
str_val = sht.Name & vbNewLine & "YM" & vbNewLine & Date
sht.Activate
If ActiveSheet.PageSetup.PrintArea <> vbNullString Then
col = Split(ActiveSheet.PageSetup.PrintArea, "$")(3)
row = Range(ActiveSheet.PageSetup.PrintArea).Cells(1).row
str_val = sht.Name & vbNewLine & "YM" & vbNewLine & Date
Set rng = Cells(row, col)
Set shp = ActiveSheet.Shapes.AddTextEffect(msoTextEffect28, str_val, "+mn-lt", 20, msoTrue, msoFalse, rng.Left, rng.Top)
End If
Next
End Sub
子测试()
Dim col作为字符串,row作为长度,rng作为范围
以工作表的形式标注sht,以字符串的形式标注str_val
将shp变暗为形状
对于此工作簿中的每个sht。工作表
str_val=sht.Name&vbNewLine&YM&vbNewLine&Date
短促激活
如果ActiveSheet.PageSetup.PrintArea vbNullString,则
col=拆分(ActiveSheet.PageSetup.PrintArea,“$”)(3)
行=范围(ActiveSheet.PageSetup.PrintArea).单元格(1).行
str_val=sht.Name&vbNewLine&YM&vbNewLine&Date
设置rng=单元格(行、列)
设置shp=ActiveSheet.Shapes.AddTextEffect(msoTextEffect28,str_val,“+mn lt”,20,msoTrue,msoFalse,rng.Left,rng.Top)
如果结束
下一个
端接头
谢谢你的调查 这对我很有用:
Sub Tester()
Dim shp As Shape, rngTR As Range, pa As Range
Dim t, l
Set pa = ActiveSheet.Range(ActiveSheet.PageSetup.PrintArea)
Set rngTR = pa.Rows(1).Cells(pa.Columns.Count)
Set shp = ActiveSheet.Shapes.AddTextEffect(msoTextEffect28, _
"Hello World", "+mn-lt", 20, msoTrue, _
msoFalse, rngTR.Left, rngTR.Top)
'adjust for shape width
shp.Left = shp.Left - (shp.Width - rngTR.Width)
End Sub
为什么要将文本添加为形状?使用
单元格(行,列)=str_val
@d-stroyer将文本直接添加到单元格中不是更简单吗?这是项目中的一项要求。记录将形状移动到正确的位置时,您会得到什么样的代码?