ABAP 实现 vba 设置range的属性问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ABAP 实现 vba 设置range的属性问题相关的知识,希望对你有一定的参考价值。

需求:将Excel的一个range中的format设为text
VBA:
Range("L1:L30").Select
Selection.NumberFormat = "@"
ABAP:
CALL METHOD OF W_SHEET 'Cells' = W_CELL_F NO FLUSH
EXPORTING #1 = UP_ROW_F
#2 = UP_COL_F.

CALL METHOD OF W_SHEET 'Cells' = W_CELL_T NO FLUSH
EXPORTING #1 = UP_ROW_T
#2 = UP_COL_T.

CALL METHOD OF W_SHEET 'RANGE' = W_RANGE NO FLUSH
EXPORTING #1 = W_CELL_F
#2 = W_CELL_T.
CALL METHOD OF W_RANGE 'Select' = W_SELECTION NO FLUSH.
SET PROPERTY OF W_SELECTION 'NumberFormat'
= '@'.
但是没有效果。
我的疑问在selection的这句是我这么写的吗?
如果是的话,为什么没反应
我写成SET PROPERTY OF W_RANGE 'NumberFormat' = '@'.
也没用

参考技术A 用下面的VBA语句,避免Selection
Range("L1:L30").NumberFormat = "@"追问

我知道错在哪里了,谢谢。

本回答被提问者和网友采纳

VBA编程11.Application对象

Application对象常用属性
【ActiveCell属性】
ActiveCell属性返回一个Range对象,表示当前窗口或指定窗口中的单元格。如果窗口没显示工作表,则此属性无效。
【代码区域】

Sub 激活单元格()
    Worksheets("sheet1").Activate \'激活当前单元格
    With ActiveCell
        .Value = "娑娜"
        With .Font
            .Bold = True    \'设置为粗体
            .Italic = True  \'设置为斜体
            .Size = 20      \'设置字体大小
        End With
    End With
End Sub

【结果展示】

注意:之所以该单词显示于B2,是因为在执行之前我已经将鼠标悬停此处。

【ActiveWorkbook属性】
ActiveWorkbook是一个只读属性,用于返回一个Workbook对象,该对象表示活动窗口中的工作簿
没有打开的窗口或信息窗口或剪贴板窗口作为活动窗口,则返回Nothing
【代码区域】

Sub 测试ActiveWorkbook属性()
    Dim obj As Object
    Set obj = ActiveWorkbook
    Debug.Print CStr(obj.Application.Value)
End Sub

【结果展示】

【Caption属性】
Caption是一个可读写属性,用于设置或返回Microsoft的主窗口标题栏上显示的名称,其返回的是String类型。如果没有为Microsoft的主窗口设置标题,或者将其值设置为Empty,则将此属性返回一个
"Microsoft Excle"作为默认标题
【代码区域】

Sub 更改标题()
    Application.Caption = "OLIVER--Excle 2013"
End Sub

【结果展示】

 

【Range属性】
Range属性返回一个Range对象,表示一个单元格或单元格区域
Range实例地址:http://www.cnblogs.com/OliverQin/p/6198441.html

【Selection属性】
Selection属性表示为Application对象返回在活动窗口中选定对象
【代码区域】

Sub 测试Selection属性()
    Worksheets("sheet1").Activate
    Range("A1").Select
    Selection.Clear \'清除sheet1工作表中内容
End Sub

【结果展示】

执行前

 

执行后

【sheets方法】
sheets属性是一个只读属性,用于返回一个sheets集合,其类型是一个Sheets对象

 

Sub 测试sheets属性()
     Dim wss As Sheets
     Dim i As Integer
     Application.Workbooks(1).Activate
     Set wss = Application.Sheets
     Debug.Print "当前工作簿名称如下:"
     Debug.Print
     For i = 1 To Sheets.Count
        Debug.Print Sheets(i).name
    Next
End Sub

【结果展示】

 

以上是关于ABAP 实现 vba 设置range的属性问题的主要内容,如果未能解决你的问题,请参考以下文章

VBA学习笔记之Range.Offset属性

Excel VBA中的ThisCell属性如何使用?

Abap range 表相关问题

VBA 缺少 Worksheet.Range 作为值并不断获取未设置对象变量(错误 91)

VBA 中日期格式的区别

VB类模块中属性的参数——VBA中Range对象的Value属性和Value2属性的一点区别