rand(life)

[VBA] 코드 모음5 - 배열 관련 본문

컴퓨터/엑셀

[VBA] 코드 모음5 - 배열 관련

flogsta 2017. 5. 13. 10:53

 

242 괄호안의 숫자합계

dim temp as variNt '배열변수

temp = split (r, "(")

for i = 1 to ubound(temp)

fs = fs + val (temp (i) )

next

'split으로 (를 기준해서 나누면 6), 8), 9)... 처럼 될텐데 val 을 씌우면 숫자로 인식되는지 확인 필요

 


 

94

split을 이용해 배열변수에 값넣기

변수 = split("1,20,300,200", ",")

쌍따옴표를 두번만쓰면된다

 

option compare binary 대소문자구분정렬

option compare text 구분없음

 

일차원배열은 가로방향

배열의 값을 범위에 한번에 쓸 수 있다

range("a1:f10") = myarry

 


 

[동적배열의 값 셀에 넣을때]

Worksheets("sheet2").Cells(3, k + 3).value = title(k).value 라고 하니까 개체가 필요하다는 오류가 뜬다

 

Worksheets("sheet2").Cells(3, k + 3) = title(k) 이렇게 해야한다.

 

[배열에 값 넣을때]

dim strtemp ()

strtemp = Range("G6", Cells(Rows.Count, "G").End(3)).Value

범위의 셀값을 한꺼번에 넣을 수 있다

 


 

Sub q1()

Dim stemp

가로 = ActiveSheet.Cells(2, 2).Value

세로 = ActiveSheet.Cells(3, 2).Value

Set Rng = ActiveSheet.Cells(6, 1)

ReDim stemp(세로, 가로)

For i = 1 To 세로

For k = 1 To 가로

stemp(i, k) = i & "0" & k

Next

Next

Rng.Offset(1, 0).Resize(세로, 가로) = stemp

End Sub

 

  

['파일 이름이 없을때까지 파일 이름 찾아서 fileList 배열변수에 넣기]

While fName <> ""

ReDim Preserve fileList(i)

fileList(i) = fName

fName = Dir()

i = i + 1

Wend

 


 

[2차원 배열 사용하기]

Dim stemp

가로 = ActiveSheet.Cells(2, 2).Value

세로 = ActiveSheet.Cells(3, 2).Value

 

Set Rng = ActiveSheet.Cells(6, 1)

ReDim stemp(세로, 가로)

 

For i = 1 To 세로

For k = 1 To 가로

stemp(i, k) = i & "0" & k

Next

Next

Rng.Offset(1, 0).Resize(세로, 가로) = stemp

End Sub

 

  

[resize transpose 사용법]

Set a = r항목.Offset(1, 0) '사용량'이라는 글자의 바로 아래, '전력' 사용량

Worksheets(str).Cells(iDateRow, 3).Resize(, 3) = Application.Transpose(a.Resize(3))

 

Resize(, 3) = Resize(1, 3) 같은 의미이다.

 

Sheet2.Range("c4").Resize(L, 1) = Sheet1.Range("E5").Resize(L).Value2

오른쪽에 value, 왼쪽은 주소

 

또는 이런 식으로도 가능

Set k = r.Resize(, 3)

Set o = rngC.Offset(i + 1, 0)

o.Resize(, 3) = k.Value