Vba: jak ustawić wartość komórki w innym arkuszu
Aby ustawić wartość komórki w innym arkuszu, możesz użyć następujących metod w VBA:
Metoda 1: Ustaw wartość komórki w innym arkuszu
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell value in Sheet2 equal to cell value in Sheet1
wks2.Range(" A2 ").Value = wks1.Range(" A2 ").Value
End Sub
To konkretne makro ustawi wartość komórki A2 w Arkuszu 2 na równą wartości komórki A2 w Arkuszu 1 .
Metoda 2: Ustaw wiele wartości komórek w innym arkuszu
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell range in Sheet2 equal to cell range in Sheet1
wks2.Range(" A2:A11 ").Value = wks1.Range(" A2:A11 ").Value
End Sub
To konkretne makro ustawi wartość każdej komórki w zakresie A2:A11 w Arkuszu2 na równą wartości każdej komórki w zakresie A2:A11 w Arkuszu1 .
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.
Przykład 1: Ustaw wartość komórki w innym arkuszu
Załóżmy, że mamy następujący arkusz o nazwie Arkusz1 , który zawiera nazwy różnych drużyn koszykarskich:
Załóżmy, że mamy Arkusz2 , który zawiera tylko jeden wiersz nagłówka:
Możemy utworzyć następujące makro, aby ustawić wartość komórki A2 w Arkuszu 2 na równą wartości komórki A2 w Arkuszu 1 :
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell value in Sheet2 equal to cell value in Sheet1
wks2.Range(" A2 ").Value = wks1.Range(" A2 ").Value
End Sub
Kiedy uruchomimy to makro, możemy zobaczyć, że wartość komórki A2 w Arkuszu 2 jest teraz ustawiona na „Mavs”, co odpowiada wartości komórki A2 w Arkuszu 1 :
Przykład 2: Ustaw wiele wartości komórek w innym arkuszu
Załóżmy, że chcemy ustawić wartość każdej komórki w zakresie A2:A11 w Arkuszu2 tak, aby była równa każdej komórce w zakresie A2:A11 w Arkuszu1 .
W tym celu możemy utworzyć następujące makro:
Sub SetCellAnotherSheet()
Sun wks1 As Worksheet, wks2 As Worksheet
'specify sheets to use
Set wks1 = Sheets(" Sheet1 ")
Set wks2 = Sheets(" Sheet2 ")
'set cell range in Sheet2 equal to cell range in Sheet1
wks2.Range(" A2:A11 ").Value = wks1.Range(" A2:A11 ").Value
End Sub
Kiedy uruchomimy to makro, możemy zobaczyć, że wartości w zakresie A2:A11 w Arkuszu2 są teraz ustawione na takie same, jak wartości w zakresie A2:A11 w Arkuszu1 :
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:
VBA: Jak znaleźć ostatnio używaną linię
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak policzyć liczbę użytych kolumn