我有一个通过Access VBA生成的电子表格。我从Access填充单元格范围以用于数据验证。范围在那里并命名,并使用电子表格左上角的框来检查。 当我尝试验证时,我收到消息“无法找到您指定的命名范围”。如果我现在使用Ctrl F3,我可以删除范围。现在我使用完全相同的范围并在左上角键入完全相同的标题,然后一切正常。据我所知,我始终使用完全相同的标准。有没有人有任何想法?
'写'常量'for = Sheet中的间接函数(5) “与保罗通电话。这些将来自表格 “_______________________________________________________________
Dim CL(1 To 6) As Integer ' This is to count "filled rows" when spreadsheet is filled
Dim Header(1 To 6) As String
Dim AddNameFormula As String
Header(1) = "CostType"
Header(2) = "SoftwareCosts"
Header(3) = "HardwareCosts"
Header(4) = "Expenses"
Header(5) = "Travel"
Header(6) = "Building"
NRrows = RSNonResourceCosts.RecordCount ' Number of Rows in Non Resource Table
NRcols = RSNonResourceCosts.Fields.Count ' Number of Fields in NonResource Table
RSNonResourceCosts.MoveFirst
For R = 1 To NRrows
If (RSNonResourceCosts![CostType]) <> "" Then
CL(1) = CL(1) + 1
WKS.Cells(199 + R, 1) = (RSNonResourceCosts![CostType])
End If
If (RSNonResourceCosts![SoftwareCosts]) <> "" Then
CL(2) = CL(2) + 1
WKS.Cells(199 + R, 2) = (RSNonResourceCosts![SoftwareCosts])
End If
If (RSNonResourceCosts![HardwareCosts]) <> "" Then
CL(3) = CL(3) + 1
WKS.Cells(199 + R, 3) = (RSNonResourceCosts![HardwareCosts])
End If
If (RSNonResourceCosts![Expenses]) <> "" Then
CL(4) = CL(4) + 1
WKS.Cells(199 + R, 4) = (RSNonResourceCosts![Expenses])
End If
If (RSNonResourceCosts![Travel]) <> "" Then
CL(5) = CL(5) + 1
WKS.Cells(199 + R, 5) = (RSNonResourceCosts![Travel])
End If
If (RSNonResourceCosts![Building]) <> "" Then
CL(6) = CL(6) + 1
WKS.Cells(199 + R, 6) = (RSNonResourceCosts![Building])
End If
RSNonResourceCosts.MoveNext
Next R
1100 “______________________________________________________ Dim RCount As String Dim strRange As String Dim ColString As String
For C = 1 To NRcols - 1
X = CL(C) - 1
X = X + 200
RCount = Str(X)
RCount = Right$(RCount, Len(RCount) - 1) '
'strRange = "A201:A" + RCount
strRange = Chr$(64 + C) & "200:" & Chr$(64 + C) & RCount
MsgBox "strRange " & strRange & " Rcount " & RCount
WKS.Range(strRange).Select
If C = 1 Then
ColString = Str(C)
ColString = Right$(ColString, Len(ColString) - 1)
WKS.Names.Add Name:=Header(1), RefersToR1C1:="=ProjectDetails!R200C" & ColString & ":R" & RCount & "C1"
End If
If C = 2 Then
ColString = Str(C)
ColString = Right$(ColString, Len(ColString) - 1)
WKS.Names.Add Name:=Header(2), RefersToR1C1:="=ProjectDetails!R200C" & ColString & ":R" & RCount & "C2"
End If
If C = 3 Then
ColString = Str(C)
ColString = Right$(ColString, Len(ColString) - 1)
WKS.Names.Add Name:=Header(3), RefersToR1C1:="=ProjectDetails!R200C" & ColString & ":R" & RCount & "C3"
End If
If C = 4 Then
ColString = Str(C)
ColString = Right$(ColString, Len(ColString) - 1)
WKS.Names.Add Name:=Header(4), RefersToR1C1:="=ProjectDetails!R200C" & ColString & ":R" & RCount & "C4"
End If
If C = 5 Then
ColString = Str(C)
ColString = Right$(ColString, Len(ColString) - 1)
WKS.Names.Add Name:=Header(5), RefersToR1C1:="=ProjectDetails!R200C" & ColString & ":R" & RCount & "C5"
End If
If C = 6 Then
ColString = Str(C)
ColString = Right$(ColString, Len(ColString) - 1)
WKS.Names.Add Name:=Header(6), RefersToR1C1:="=ProjectDetails!R200C" & ColString & ":R" & RCount & "C6"
End If
Next C
I hope this might help. Code is vast.