2014-06-19 65 views
0

我從Userform以字符串的形式輸入,我需要在單元格中輸出它們。在輸出中,所有字符串都被連接起來,但只有少數字符被斜體化。我無法輸出斜體字符串。我曾嘗試搜索文檔,堆棧交換和其他幾個博客,但它們都需要從單元格中進行選擇,而不是操縱從Userform獲取的字符串。任何幫助或指針,不勝感激。以斜體打印字符串

現在輸出:[1] R. Welder。如何焊接。焊接車間:出版商,2014年,第25-32頁。

所需輸出:[1] R. Welder。 如何焊接。焊接車間:出版商,2014年,第25-32頁。

Private Sub Ok_Click() 
Dim emptyRow As Long 
Dim bookAuthor, bookTitle, loc, publish, yearBook, pageBook As String 

'Make Sheet2 active 
Sheet2.Activate 

'Determine emptyRow 
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 

'Format Information 
bookAuthor = Author.Value + ". " 
bookTitle = TitleOfBook.Value + ". " 'Needs to be Italicized 
'bookTitle.Font.Italic 'Error: Object Required 
'TitleOfBook.Font.Italic = True 'Italicizes in userform but not in cell 
loc = Location.Value + ": " 
publish = Publisher.Value + ", " 
yearBook = Year.Value + ", " 
pageBook = "pp. " + Pages.Value + ". " 

'Transfer information 
Cells(emptyRow, 1).Value = "[" + CStr(emptyRow) + "] " + bookAuthor + bookTitle + loc + publish + yearBook + pageBook 

Unload Me 
End Sub' 
+1

請發表您的代碼... – SilverShotBee

+0

「我得到一個錯誤」是不是一個有用的問題說明。你知道那個錯誤是什麼,因爲你有權在你面前。絕對沒有理由不把它包含在你的問題中。你使用什麼代碼來處理'Font.Italic',以及你得到了什麼**特定**錯誤?我們無法爲您調試不包含在您的問題中的代碼。 –

+1

只是關於你的代碼的一句話:'Dim bookAuthor,bookTitle,loc,publish,yearBook,pageBook As String'只會將'pageBook'聲明爲字符串,其他所有變量都將是'Variant'。 – MP24

回答

3

設置您寫入的單元格的字體樣式爲其斜體的單元格,而不是字符串;

With Range("A1") 
    .Font.Italic = True 
    .Value = "Roast Beef" 
End With 

編輯;斜體部分細胞選擇由偏移量和長度的內容:

emptyRow = 1 
bookAuthor = "R. Welder." 
bookTitle = "How to weld" 
loc = "Welding Shop" 
publish = "Publisher" 
yearBook = "2014" 
pageBook = "pp25-32" 

Dim temp As String, begin As Long 
'// store everything upto the start of italic part 
temp = "[" & emptyRow & "] " & bookAuthor & " " 
'// store its length 
begin = Len(temp) 

With Range("A1") 
    '// set the value to everything 
    .Value = temp & bookTitle & " " & loc & " " & publish & " " & yearBook & " " & pageBook 
    '// we know where the italic text need to be 
    .Characters(begin + 1, Len(bookTitle)).Font.Italic = True 
End With 
+0

嗨,亞歷克斯,我只需要斜體在單元格中的字母的一部分。從「烤牛肉」只說「牛肉」。 – JustAJunior

+0

更新了答案 –

+0

亞歷克斯,有沒有一個通用的方法來做到這一點?說兩個字符串「烤」和「牛肉」可能會根據用戶輸入而改變。假設用戶輸入「Unroasted」和「Ham」代替。我怎麼總能讓第二根弦(「火腿」,「牛肉」)斜體?我可以使用計數器來計數字符串的長度並使用上面顯示的方法,但只是想知道是否有更好的方法。 – JustAJunior