누군가 Excel이 수식을 조작하는 것처럼 보입니다. 열 A에 색인 값이있는 시트가 있습니다. 첫 번째 행은 0이 아닌 값으로 시작됩니다. 열의 후속 행은 값을 증가시킵니다. Excel VBA는 테이블에서 내 수식을 변경합니까?
A1 = 1000
A2= A1+ 1
A3= A2 + 1
및 예
그래서 그 값 예 공란 또는 화학식 열 A (대개 후속 행)을 가리키는 것 중 다른 칼럼 B가/ 에 :B1.Formula = "=A2"
B2.Formula = "=A3"
B3.Value = ""
B4.value = "=A6"
이제 가질을 데이터/수식을 텍스트 파일에 쓰고 다른 통합 문서에서 다시 읽을 수있는 백업 복원 기능. 열 A와 B의 경우 텍스트 값이 "="로 시작하는지 확인한 다음 수식의 유무에 따라 해당 셀의 값이나 수식을 설정합니다.
지금까지 기능이 정상적으로 작동했습니다. 그것은 정확하게 복원 할 수 있습니다.
이제이 데이터 범위를 테이블로 변환하고 그에 따라 코드를 수정하면 동작이 이상합니다. ListObject 구조를 사용하여 테이블을 참조하고 있습니다. 코드를 복원의 나 열 B에 대한 그래서입니다 : 처음에 내가 행을 작성 마쳤하고 일단
If Left(soureString) = "=" Then
'This is a formula
Sheets("MySheet").ListObjects(1).ListColumns("Next").DataBodyRange(row).Formula = sourcestring
Else
'This is a value
Sheets("MySheet").ListObjects(1).ListColumns("Next").DataBodyRange(row).Value = soureString
End If
, I 루프
Dim newRow AS listrow
Set newRow = Sheets("MySheet").Listrows.Add(AlwaysInsert:=False)
row = newRow.Index
하지만이 프로세스를 실행하는이 시간. 이것은 내가 얻은 것입니다 :
B1.Formula = "=A5"
B2.Formula = "=A5"
B3.Value = ""
B4.value = "=A5"
범위 대신 테이블을 사용할 때 내 수식 값이 모두 같은 값으로 변경되는 이유는 무엇입니까?
'Sheets ("MySheet"), ListColumns ("Next")가 아니라'Sheets ("MySheet")가되어야 함 ListObjects (1) .ListColumns ("Next")'? –
@ PeterAlbert – DPD
오류를 지적 해 주셔서 감사합니다. [Excel 테이블의 수식 및 구조화 된 데이터] (http://excelsemipro.com/2011/04/formulas-and-structured-data-in-excel-tables/) 테이블로 변환하는 가장 좋은 점은 더 많은 데이터를 테이블에 추가하면 수식이 자동으로 아래로 복사된다는 것입니다. 이 수식을 변경하면 Excel에서 자동으로 변경 내용을 열의 모든 행에 복사합니다. 그리고 열의 첫 번째 셀을 변경하거나 중간에 셀을 변경하면 열의 모든 행이 수정됩니다. " 이 동작을 변경하는 방법을 잘 모르겠습니다. – User