2017-05-21 35 views
0

我正在創建一個表單,將數據輸入到我的Excel表單中。我一直遇到的問題是輸入的信息是一個數字,但是當爲表格「保存」按鈕運行VBA代碼時,我輸入到表格中的數據將作爲文本輸入到Excel工作表中。這會導致該行末尾的公式無法註冊數據(簡單的=sum(...)公式)。我嘗試了幾個不同的選項,並且搜索瞭解決方案,但所有接近的答案都是從外部源導入數據。如何在使用表單輸入數據時將單元格的格式從文本轉換爲數字

這是將從表單接收數據的單個單元的代碼。會有更多,但我認爲這將提供足夠的信息。代碼中除了range("").select發生更改以外,其他代碼都很少,然後在每個新選擇中從不同的文本框中提取數據。

Private Sub butSaveData_Click() 

    Sheet1.Activate 

    Range("g8").Select 
     ActiveCell.Value = txtAARs 
     Selection.NumberFormat = "0.00" 

我認爲selection.numberformat可以解決問題,但它仍然存在。我在Excel工作表中更改了格式,但是當表單填充單元格時,它會繼續將它們還原爲文本。

任何幫助或建議將不勝感激。我搜索了這個網站很多,找不到答案。我希望我不會錯過它。

+0

你應該使用'隨着Sheet1.Range( 「G8」) 。價值= VAR1 .NumberFormat = 「0.00」 用'結束而不是選擇。即使輸入變量被聲明爲一個字符串,我也試過這段代碼,並且sum()工作。該錯誤必須來自您的代碼或fomating中的其他內容。 – UGP

+0

在文本更改後嘗試'Application.Calculate',或使用'Sheet1.Range(「H9」)計算vba代碼中的總和值Value = Application.Sum(Range(「H8:G8」))' – UGP

+0

I嘗試了你的第一個建議,但它沒有把格式改回數字。可能,正如你所說的,在Excel格式化方面有些問題。 – BombSquad

回答

1

假設txtAARsTextBox,請指定.Value屬性。

Private Sub butSaveData_Click() 

    Sheet1.Activate 

    Range("g8").Select 
     ActiveCell.Value = txtAARs.Value 
     Selection.NumberFormat = "0.00" 

重構擺脫SelectActivate

Private Sub butSaveData_Click() 

    With Sheet1 
     With .Range("G8") 
      .Value = txtAARs.Value 
      .NumberFormat = "0.00" 
     End With 
    End With 
+0

完美地將文本格式更改爲數字格式,謝謝。由於某些原因,= sum()函數仍然無法正常工作。也許我需要發佈一個新問題? – BombSquad

+0

@BombSquad是的,如果即使在所有值都是數字後SUM'仍然不工作,那絕對是一個不同的問題。 – YowE3K

+0

感謝您的協助。如果我無法弄清楚,我會發佈一個新問題。 – BombSquad

相關問題