2012-06-20 39 views
5

Tôi có một chuỗi:
Range("T4").Value = "Rule 13s voilation"Viết subscript Giá trị Trong VBA

Tôi muốn viết 13s như 1 s
tức là 3s là một subscript của 1.

Xin gợi ý về cách tôi nên đi về nó trong

+1

+ 1. Không chắc tại sao điều này lại bị giảm giá. –

+3

@SiddharthRout: "Cho tôi biết cách viết các giá trị trong chỉ số trong VBA." -> "Câu hỏi này không cho thấy bất kỳ nỗ lực nghiên cứu nào." Đó là cuộc gọi của tôi. OP đã hỏi nhiều câu hỏi trước và nên biết điều này. –

+0

@ Jean-FrançoisCorbett: Tôi hiểu rồi. Tôi đánh giá cao bạn làm rõ điều đó. Tôi chắc chắn OP sẽ chăm sóc trong tương lai. :) –

Trả lời

9

Hãy thử như sau:

Range("T4").Value = "Rule 13s voilation" 
Range("T4").Characters(Start:=7, Length:=2).Font.Subscript = True 

Tôi không chắc chắn cách này sẽ làm việc cho bạn với độ dài chuỗi động.

+2

+1 bạn đánh bại tôi sau một giây :-) –

+0

+ 1 Tốt nhất :) –

+0

+1 được thực hiện tốt :) –

7

Hãy thử thực hiện thủ công trong khi ghi macro, sau đó xem mã kết quả. Điều đó sẽ cho bạn câu trả lời của bạn.

Dưới đây là một dọn dẹp câu trả lời:

With Range("T4") 
    .Value = "Rule 13s voilation" ' (sic) 
    .Characters(Start:=7, Length:=2).Font.Subscript = True 
End With 
+0

+ 1 để có câu trả lời hay. may mắn trong vài giây :) –

+0

+1 cho câu trả lời không kém :) –

1

tôi sử dụng chức năng này để concatenate 2 tế bào thành một. văn bản đầu tiên là văn bản, văn bản thứ hai là số tham chiếu đến các nhận xét

Sub setRefWithRemark() 


Dim aCellRef, aCellRem, aCelTarget As Range 
Dim aRow As Range 

For Each aRow In Range("rgtensileRefWithRemark").Rows 
    Set aCellRef = aRow.Cells(1, 1) 
    Set aCellRem = aRow.Cells(1, 12) 
    Set aCellTarget = aRow.Cells(1, 17) 
    If aCellRef.Text <> "" Then 
     With aCellTarget 
      .value = aCellRef.Text & cTextSeparator & aCellRem.Text ' (sic) 
      .Characters(Start:=Len(aCellRef.Text) + 2, Length:=Len(aCellRem.Text)).Font.Superscript = True 
     End With 
    End If 
    Next 
End Sub 
Các vấn đề liên quan