2013-03-01 91 views
0

我沒有這方面的經驗。我已經得到了包含MCQ測驗的文本文件。目前,我必須在將它們導入到excel中之前編輯帶分隔符(例如TABS)的所有測驗問題。我需要自動化的方式來格式化導入的文件到這些列QuestionId ExamType,Year,Subject,Question,Answer1,Answer2,Answer3,Answer4,Answer5,CorrectAnswer,圖像無需手動編輯文本first.OKay,繼承人的文本示例我目前進口到excel中。「1.政府作爲治理的一種藝術,指的是管理社會上的人們的過程b。建立政黨C.提供免費教育D.獲得社會技能2。一個國家是A.礦產資源的可用性B.發達的基礎設施C.一個有組織的法律體系D.發達的市場。我想在上面的列中填入例子1和2。已經壓縮了我一直在做什麼 這樣做,你可以看看我 還包括原始測驗數據,以便 你可以有一個想法是什麼,我是 試着強制格式鏈接。感謝所有 您的支持。在excel中強制格式化導入的文本文件

+0

要獲得幫助回答,我們需要更多的代碼/上下文。格式化數據是關於使它看起來像x而不是y。我不確定我是否理解這兩個組成部分,或者就此而言,您已經嘗試做什麼。你能否舉一個你現在的數據是什麼樣子的例子,以及你最終想要的樣子? – KyleMit 2013-03-01 04:44:37

+0

OKay感謝繼承人我正在導入excel的文本的一個例子。「1.政府作爲治理藝術指的是破壞社會人民的過程b。建立政黨C.提供免費教育D.獲取社交技能 2.一個國家的基本特徵是A.礦物資源的可用性B.發達的基礎設施C.有組織的法律體系D.發達的市場 – user2122072 2013-03-02 00:41:17

回答

0

試試這個:

打開你的Excel文檔,打Alt鍵 + F11,彈出VBA編輯器,插入一個新模塊(如果不存在),打開它,而在下面的代碼粘貼(他們,我們會在一點點使用自定義用戶自定義函數)

Function LEFTDELIMIT(ByVal text As String, ByVal delimiter As String) 
    Dim position As Integer 
    Dim leftText As String 
    position = InStr(1, text, delimiter, vbTextCompare) - 1 
    leftText = Left(text, position) 
    LEFTDELIMIT = leftText 
End Function 

Function RIGHTDELIMIT(text, delimiter) 
    Dim position As Integer 
    Dim rightText As String 
    position = Len(text) - Len(delimiter) - InStr(1, text, delimiter, vbTextCompare) + 1 
    rightText = Right(text, position) 
    RIGHTDELIMIT = rightText 
End Function 

Function NOERROR(text) 
    If IsError(text) Then 
     NOERROR = "" 
    Else 
     NOERROR = text 
    End If 
End Function 

我猜在這一點上,所有的文字作爲測驗的是A1。請按照前面指定的方式,用逗號分隔該單元格,以便在每個問題的自己的列中進行分隔。由於我們希望每個問題都佔據其自己的行,因此要突出顯示第1行的所有內容並複製,然後將特殊內容粘貼到A2中,然後選擇該選項以轉置這些值。現在每個問題都有自己的問題。現在我們想要做的是給每個答案選擇自己的專欄。我們可以使用之前的自定義函數,讓您將所有文本都放在自定義分隔符的左側或右側。

如果A2的值是

  • 1.Government作爲執政的藝術是指A.ruling人們在社會b.establishing政黨C.提供免費教育D.取得社會的過程技能

然後,我們將填寫其他欄目下面的代碼:

  • B2:=LEFTDELIMIT(A2,"A.")
  • C2:=NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"A."),"B."))))
  • D2:=NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"B."),"C."))))
  • E2:=NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"C."),"D."))))
  • F2:=NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"C."),"D."))))
  • G2:=NOERROR(PROPER(TRIM(LEFTDELIMIT(RIGHTDELIMIT(A2,"D."),"E."))))

這是使有關輸入的數據是如何被格式化的某些假設。如果這不起作用,請將所有工作都顯示在一個excel文件中,您可以通過任何在線文件共享主機上傳和分發,以更好地瞭解哪些特定錯誤可能會讓您失望

+0

謝謝。唯一的問題是,我目前正在添加(但不是很酷) – user2122072 2013-03-04 02:53:10

+0

哇,謝謝。「但是請繼續 並用逗號分隔這個單元格,因爲我之前指定的是 可以在 的每一個問題中得到它自己的列。」??我一直在尋找那個msg不能找到它。我記得你說我應該用分號分隔並保存爲一個CSV文件,那麼如何來逗號? – user2122072 2013-03-06 19:31:00

+0

Hight Ce將A1,將所有的值,到數據功能區,選擇文本到列,選擇分隔符,然後選擇你的分隔符(在這種情況下是一個逗號)。 CSV文件是存儲數據的非常標準的方式,可以被很多不同的應用程序讀取。請記住接受任何對你有幫助和/或upvote的答案(雖然我不確定你是否有這個知識) – KyleMit 2013-03-06 20:02:08