같은 스프레드 시트의 다른 Excel 탭 (예 : =Data!D11
)에서 해당 값의 대부분을 참조하는 스프레드 시트가있는 필드 값을 참조하는 값으로 업데이트합니다 .매크로 (VB 코드)를 사용하여 Excel 시트의 모든 참조 된 필드 새로 고침
이전에 선택한 행의 하드 코딩 된 필드를 포함하는 업데이트 할 행 번호를 입력 할 수있는 팝업 상자를 제공하는 다음 VB MACRO 코드를 작성했지만 모든 필드를 업데이트하려는 경우 어떻게 할 수 있습니까? 어떤 열과 행을 업데이트해야합니까? 기본적으로 사용자가 요청할 경우 페이지에서 참조되는 모든 필드를 업데이트 할 수있는 매크로 VB 코드가 필요합니다.
Excel이 그 자체를 업데이트하지 않는 이유가 다소 혼란 스럽지만이 자동화는 표시 할 필드를 실제로 "새로 고치는"방법이없는 한 스프레드 시트 내의 모든 참조 된 필드를 간단히 매크로를 업데이트하는 데 도움이됩니다. 새로운 가치?
Sub UpdateFormulas()
Dim LRowNumber As Long
LRowNumber = InputBox("Please enter the row number to update the formulas.")
Sheets("Form").Select
'All following code will copy a formula into the destination if the source
'has a value. If the source does not have a value, it will copy a blank to
'the destination.
'Item #1
Range("F7").Select
If IsEmpty(Range("Data!A" & LRowNumber).Value) Then
ActiveCell.Value = ""
Else
ActiveCell.Formula = "=Data!A" & LRowNumber
End If
'Item #2
Range("F9").Select
If IsEmpty(Range("Data!B" & LRowNumber).Value) Then
ActiveCell.Value = ""
Else
ActiveCell.Formula = "=Data!B" & LRowNumber
End If
'Item #3
Range("J10").Select
If IsEmpty(Range("Data!C" & LRowNumber).Value) Then
ActiveCell.Value = ""
Else
ActiveCell.Formula = "=Data!C" & LRowNumber
End If
'Item #4
Range("H11").Select
If IsEmpty(Range("Data!D" & LRowNumber).Value) Then
ActiveCell.Value = ""
Else
ActiveCell.Formula = "=Data!D" & LRowNumber
End If
'Item #5
Range("D11").Select
If IsEmpty(Range("Data!E" & LRowNumber).Value) Then
ActiveCell.Value = ""
Else
ActiveCell.Formula = "=Data!E" & LRowNumber
End If
'Reposition back on item #1
Range("F7").Select
MsgBox ("The formulas were successfully updated to row " & LRowNumber & ".")
End Sub
아니면 피벗 테이블을 허용해야합니까?
감사 데이비드, 필자가 "를하지 않고 다음"을 받고 있지만 오류를 컴파일, 내가 마지막'With' 종료 문을 잊었다 ... 그 생각 ... –
다시 시도처럼 보인다 나던. 나는 당신이 설명하는 오류를 유발할 것이라고 생각합니다. 또한 Item # 5 ('LRowNumber'를'r'로 바꾸는 것을 잊어 버렸습니다.)에서 또 다른 개정판을 만들었습니다. 그래도 문제가 발생하면 알려주세요. –
굉장한 그 일하는, 그 우스운 방법 VBA 컴파일 오류는 1 개의 것을 말할 수있다. 그러나 완전히 다른 무엇인가 의미한다. 범위를 제거하고 값을 참조한 선택한 행과 열만 업데이트 할 수 있습니까? 범위에있는 필드가 비어 있지만 지정되지 않은 다른 필드가 업데이트되고있는 것으로 보입니다. –