1. Dlaczego funkcja:
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\Test.xls")
Set objWorksheet = objWorkbook.Worksheets(1)
Set objRange = objWorksheet.UsedRange
For Each objCell in objRange
If IsNumeric(objCell.Value) Then
If objCell.Value = "0" Then
objCell.Interior.ColorIndex = 3
ElseIf objCell.Value = "+" Then
objCell.Interior.ColorIndex = 4
ElseIf objCell.Value = "x" Then
objCell.Interior.ColorIndex = 0
ElseIf objCell.Value = "v" Then
objCell.Interior.ColorIndex = 5
End If
End If
Next
nie koloruje mi pola i wyskakuje błąd ?
2. Posiadam w pewnym polu funkcję =LICZ.PUSTE(A1000:B1000), w jaki sposób zamiast stałych parametrów A1000 i B1000 wstawić "pobierz wartość parametru z komórki G3" a w G3 oczywiście liczba 1001.
Z góry dziękuje za pomoc.
1. Dlaczego funkcja:... nie koloruje mi pola i wyskakuje błąd ? Ta funkcja działa i koloruje pola. Dwa tylko drobne wyjaśnienia. Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\Test.xls")Tutaj się wywali jeśli bedzie zła ścieżka lub plik nie istnieje
oraz If IsNumeric(objCell.Value) Then
Komórki z zawartościa "+", "x" i "v" nie sa typu Numeric zatem tych komórek nie pokoloruje.
2. Posiadam w pewnym polu funkcję =LICZ.PUSTE(A1000:B1000)... a w G3 oczywiście liczba 1001 Np. tak: =LICZ.PUSTE(ADR.POŚR(ZŁĄCZ.TEKSTY("A";TEKST(G3;0));PRAWDA):ADR.POŚR(ZŁĄCZ.TEKSTY("
B";TEKST(G4;0));PRAWDA)) gdzie "A" - kolumna początku zakresu "B" - kolumna końca zakresu G3 - komórka wiersza początku zakresu G4 - komórka wiersza końca zakresu Użytkownik imcpan edytował ten post 09 lipiec 2010, 07:06
Odp.1
Dim objExcel
Dim objWorkbook
Dim objWorksheet
Dim objRange
Dim objCell
On Error Resume Next
Set objExcel = GetObject(, "Excel.Application")
If objExcel Is Nothing Then
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
Else
objExcel.Visible = True
End If
Set objWorkbook = objExcel.Workbooks.Open("C:\Scripts\Test.xls")
Set objWorksheet = objWorkbook.Worksheets(1)
Set objRange = objWorksheet.UsedRange
For Each objCell In objRange
If Not IsEmpty(objCell) Then
Select Case objCell
Case "0"
objCell.Interior.ColorIndex = 3
Case "+"
objCell.Interior.ColorIndex = 4
Case "x"
objCell.Interior.ColorIndex = 7
Case "v"
objCell.Interior.ColorIndex = 5
End Select
End If
Next
On Error GoTo 0
Set objRange = Nothing
Set objWorksheet = Nothing
Set objWorkbook = Nothing
Set objExcel = Nothing
odp.2
=LICZ.PUSTE(ADR.POŚR("A" & G1 & ":B" & G1)) Użytkownik ALIENQuake edytował ten post 10 lipiec 2010, 12:37
zanotowane.pldoc.pisz.plpdf.pisz.plmilosnikstop.keep.pl
|