2016-04-20 29 views
0

Excelに書き出していて、既に数値が入っているセルの前に数字を挿入する必要があります。ここに私の完全なコードは次のとおりです。VBAにアクセスする - Excelのセルに番号を追加する

Private Sub cmdExport_Click() 

Dim Results As Recordset 
Dim Numbering As Integer 

Dim FileName As String 
Dim FilePath As String 

Dim wb As Excel.Workbook 
Dim XcelFile As Excel.Application 

FileName = "TEST" & Format(Date, "dd/mm/yyyy") & ".xlsx" 

FilePath = CurrentProject.Path & "\" & FileName 

Set XcelFile = New Excel.Application 

Set wb = XcelFile.Workbooks.Add 

Set Results = Forms![MyForm].Form.RecordsetClone 

    With wb 

     XcelFile.ScreenUpdating = False 

     For Numbering = 0 To Results.Fields.Count - 1 
     XcelFile.Cells(1, Numbering + 1).Value = Results.Fields(Numbering).Name 
     Next Numbering 

     Results.MoveFirst 
     XcelFile.Range("A2").CopyFromRecordset Results 

    For Each cell In XcelFile.Range("A:A") 
    cell.Value = "100" & cell.Value 
    Next cell 

     .SaveAs FileName:=FilePath, FileFormat:=51 
     XcelFile.ScreenUpdating = True 

    End With 

    wb.Close 
    Set XcelFile = Nothing 

    End Sub 

見ての通り、私はこれを試してみました:

For Each cell In XcelFile.Range("A:A") 
     cell.Value = "100" & cell.Value 
     Next cell 

しかし、unfortunally、何も起こりません。どうすればこの問題を解決できますか?

+0

データベースから必要なデータをクエリし、クエリに100を追加して、その結果をそのままExcelにドロップする方が簡単です。 – Rory

+0

たぶん、私はこれを試していないが、今私はこれを持っており、それを解決したい。 – LuckyLuke82

答えて

1
For Each cell In XcelFile.Range("A:A") 

Dim sh As Excel.Worksheet 
Set sh = wb.ActiveSheet 
For Each cell In sh.Range("A:A") 

私が考えるべきです。

これは、現在XcelFile.Cellsになっている他のすべての場所に適用され、sh.Cellsに変更されます。

注:

Dim XcelFile As Excel.Application 

は本当に紛らわしい名前、私見です。

+0

ありがとうAndre、私はすべてを変更し、それは動作します。どうすれば行末にこれを追加したいのですか?これは私にとってはうまくいかない:各セルFor sh.Cells(sh.Rows.Count、 "A")。End(xlUp).Row – LuckyLuke82

関連する問題