Vraag : Macro hulp

Hallo blinken kerels i behoeftehulp in het ontwerpen van een macro die in elk zou gaan dossier uit en doen een gemiddelde en stdev van Kolom I, L, M, N… en elke kolom bevat rond 58-62 rijen van gegevens. hoe ik dat zou doen. Ik heb letterlijk meer dan 300 dossiers. zo absoluut. de hand oplossing is outavraag. voor uw verwijzing i havae maakten vast bl " >
uit

Antwoord : Macro hulp

Hier is een oud-schoolvoorbeeld.  U zou of de hard-gecodeerde standaardfolder of het gebruik vraagt de gebruiker om de foldernaam veranderen.

om StdDev te berekenen moet u twee passen door de gegevens maken, eerst berekenend het gemiddelde en toen het verschil.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
Expliciete optie

Openbare Substats ()
  Schemerige intFN als Geheel
  Schemerige strLine als Koord
  Schemerig strParsed () als Koord
  Schemerige dblSums (8 tot 15) zoals Dubbel
  Schemerige dblAvgs (8 tot 15) zoals Dubbel
  Schemerige dblVariances (8 tot 15) zoals Dubbel
  Schemerige lngCount zoals lang
  Schemerige lngColumns (1 tot 4) zoals lang
  Schemerige strFilename als Koord
  lngColumns (1) = 8
  lngColumns (2) = 11
  lngColumns (3) = 12
  lngColumns (4) = 15
  Schemerige lngLoop zoals lang
  Const CSVpath als Koord = „C:\Users\Mark\Downloads\“
  '1gl-fabriek-laag-SNR-macht-vlak-.csv "
  
  intFN = FreeFile
  strFilename = Dir (CSVpath & „*.csv“)
  Doe tot Len (strFilename) = 0
    Open CSVpath & strFilename voor Input als #intFN
    Doe tot EOF (intFN)
      Ingevoerde lijn #intFN, strLine
      strParsed = verdelen (strLine, „,“)
      '(I, L, M, N,   P) = 9, 12, 13, 15 met één oorsprong
      Voor lngLoop = 1 tot 4
        dblSums (lngColumns (lngLoop)) = dblSums (lngColumns (lngLoop)) + Val (strParsed (lngColumns (lngLoop)))
      Daarna
      lngCount = lngCount + 1
    Lijn
    Dichte #intFN
    strFilename = Dir ()
  Lijn
    
  Voor lngLoop = 1 tot 4
    dblAvgs (lngColumns (lngLoop)) = dblSums (lngColumns (lngLoop)) /lngCount
  Daarna
  
  strFilename = Dir (CSVpath & „*.csv“)
  Doe tot Len (strFilename) = 0
    Open CSVpath & strFilename voor Input als #intFN
    Doe tot EOF (intFN)
      Ingevoerde lijn #intFN, strLine
      strParsed = verdelen (strLine, „,“)
      Voor lngLoop = 1 tot 4
        dblVariances (lngColumns (lngLoop)) = dblVariances (lngColumns (lngLoop)) + (dblAvgs (lngColumns (lngLoop)) - Val (strParsed (lngColumns (lngLoop)))) ^ 2
      Daarna
    Lijn
    Dichte #intFN
    strFilename = Dir ()
  Lijn
    
    Debug.Print lngCount
    Voor lngLoop = 1 tot 4
      Debug.Print dblSums (lngColumns (lngLoop)), dblAvgs (lngColumns (lngLoop)), dblVariances (lngColumns (lngLoop)), Sqr (dblVariances (lngColumns (lngLoop)))
    Daarna
  
  
Sub van het eind
Andere oplossingen  
 
programming4us programming4us