2016-11-14 3 views
0

私はまた=TEXT(cellNO,"0")を使用してテキストに変換し、それはその時のために正常に動作数字はpermenantly

ProductIDS 
46257547467 
65464564656 
47682542896 
68683582757 

に似ているproductIDsを含む列を持つテキストにMS Excelのセルを固定してください。

ProductIDS 
4.62E+10 
6.54E+10 
4.76E+10 
6.86E+10 

私は永久に私は毎回それを開いたとき、それは私にテキストとして列を表示されるようにテキストに変換することができます方法:私は、ファイルを開いたときしかし、数時間後に、次回は、それはこのような数字としてその列を読み込み、 ?ありがとう。

+0

問題は何ですか? '= TEXT(cellNO、" 0 ")式は消えますか?それとも、数式はそこにありますか?それでも、数字は科学的な形式で表示されますか?どのバージョンのExcelですか?ここで詳しい情報が必要です。 – SiHa

+0

数式を適用した後、すべてのセルを値として貼り付けます。だから今は公式はここにはありませんが、値はテキストに変換されます。しかし、次回にファイルを開くと、それらの値が科学的な形式で表示されます。 – muazfaiz

+0

セルに「テキスト」フォーマットを適用するだけではどうですか? – SiHa

答えて

0

Excelシート内で一意のIDを生成しようとしているようです(別のアプリケーションで使用するために、多分...?)。 a)新しい行が追加されている(特に既存の行が混在している)場合、またはb)式がシートのコンテキストに基づいている場合、ここでの式を使用するとあまり効果がありません。

私は与えられた列に対して一意のIDを生成する小さなサブを書いています。その行に何かが移入されたときに自動的に移入します。現在の行だけでなく、挿入された行の範囲でも機能します。

Private Sub Worksheet_Change(ByVal targetRange As Range) 
    ' Confirm that the change is occuring where I want to track it 
    If targetRange.Column = Range("WhereChangeOccurs").Column Then 
     ' Capture the target column holding the IDs 
     Dim IDRangeColumn As Integer 
     IDRangeColumn = Range("IDRange").Column 

     ' Loop through each row of the target range, inserting an ID literal 
     For Each thisrow In targetRange.Rows 
      ' update the ID with 
      ' DateTime (to milliseconds) plus 
      ' unique GUID based on system 
      Cells(thisrow.Row, IDRangeColumn).Value = Format(Now, "yyyy-mm-dd: hh.mm.ssss-") & Mid$(CreateObject("Scriptlet.TypeLib").GUID, 2, 18) 
     Next 
    End If 
End Sub 

それは非常に高速だし、複数の行を挿入するときに一意性は、(これまでの時点で約50〜100行にチェックされている)でもアップ成り立ちます。これは、の利点があります。は、行の一意のIDを生成します。コピー&ペースト値は必要ありません。人間の介入は必要ありません。

ID生成の "、18)"は、一意性のために使用する場合は長い番号にすることができます。私は人間の理解しやすさのために、最初は何かを読めるようにしたい(日時)。