2017-08-02 1 views
1

私はVBAのこのビットを持っている。ここ VBAは、Windows 2007マシンで正常に動作しますが、Windowsではなく10

Sub populateChartData() 
Dim i As Integer 
Dim j As Integer 
Dim finalRowSheet2 As Integer 
Dim k As Integer 
Dim n As Integer 
Dim Sheet2 As Worksheet 
Dim price As Double 
Dim cnt As Integer 

With Worksheets("Data") 
Set Sheet2 = Worksheets("Sheet2") 
finalRowSheet2 = Sheet2.UsedRange.Rows.Count 
For i = 2 To 5 
    For j = 2 To 5 
     price = 0 
     cnt = 0 
     For k = 2 To finalRowSheet2 
      Sheet2.Cells(i, 5) = "'" & Sheet2.Cells(i, 5) 
      If .Cells(i, 1) = CInt(Right(Sheet2.Cells(k, 5), 4)) And _ 
       .Cells(1, j) = Sheet2.Cells(k, 4) Then 
        price = price + Sheet2.Cells(k, 3) 'Col 7 if weighting is used 
        cnt = cnt + 1 
      End If 
     Next k 
     If cnt = 0 Then 
      .Cells(i, j) = 0 
     Else 
      .Cells(i, j) = price/cnt 
     End If 
    Next j 

Next i 
End With 
End Sub 

address1 3.19 mi $1,250 studio 5/1/2017 
address2 3.38 mi $950 studio 7/1/2017 
address3 3.48 mi $725 studio 3/1/2017 
address4 3.51 mi $850 studio 7/1/2017 

それは上意図した作品として、データのサンプルですWindows 2007マシン。それは、この行にType Mismatchエラーを生成のWindows 10マシン

If .Cells(i, 1) = CInt(Right(Sheet2.Cells(k, 5), 4)) And _ 
      .Cells(1, j) = Sheet2.Cells(k, 4) Then 

に使用された場合でも、私は英語に言語を設定するControl Panel >> Clock, Language and Region >> Region and Languageに入って試してみましたが、それはすでに英語に設定しました。私はこれが問題であるかもしれないと読んだ。また、変数の種類を変更しようと試みましたが、これまでWindows 10マシンではエラーが引き続き発生しています。私は、このエラーがなくても、このコードを両方のWindowsオペレーティングシステムで動作させたいと思います。両方のバージョンで

+0

両方のバージョンの 'thausands separator'と'小数separator'を確認してください。これは、コントロールパネルの[地域のオプション]にあります。 – Vityata

+0

私は見て回ります。 –

答えて

0

を実行し、このコード:

Public Sub TestMe() 
    Debug.Print "Decimal -> "; Application.DecimalSeparator 
    Debug.Print "Thausand -> "; Application.ThousandsSeparator 
End Sub 

結果が異なる場合は、あなたが何をすべきか知っています。あなたはここにこのトリックについての詳細を読むことがあります。

https://msdn.microsoft.com/en-us/library/office/aa215774(v=office.11).aspx

+1

今日は後で見ていきます。これは実際にはクライアントのコンピュータ上にあり、既に電子メールが届いています。私は確かにあなたにどちらかの方法を知らせます。 –

+0

コントロールパネルのルートに行くと、あなたが言及する設定は同じように見えます。とにかくこのコードを実行すると別の答えが出るでしょうか? –

+0

すみません。私はそれぞれ同じ結果を得ます。 –

関連する問題