2013-04-11 2 views
0

필자는 필자가이 언어로 "생각해보십시오"(필자의 기본 코딩 언어는 VBA/ASP 임) 배우려고 노력하고 있습니다. 여기 google-docs set vs logic 이해하기

단순히 시트 1에서 특정 셀의 내용을 판독하여, I이 매우 간단한 3 선 부분을 해체 할 때 rngVal

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
ss.setActiveSheet(ss.getSheetByName("Sheet1")); 
var rngVal = ss.setActiveSelection("A1").getValues(); 

라는 변수에 그 값을 할당하는 가장 기본적인 예이다 (그것의 목적을 이해하기 위해) 코드에 대해 다소 당혹 스럽다는 것을 인정합니다. 나는 각 행 후 MSGBOX를 삽입하면

, 나는이 얻을 : 왜

는 여기

var ss = SpreadsheetApp.getActiveSpreadsheet(); = "스프레드 시트"

ss.setActiveSheet(ss.getSheetByName("Sheet1")); = "스프레드 시트"

var rngVal = ss.setActiveSelection("A1").getValues(); = 셀 값

"스프레드 시트"이란 무엇입니까? 이 정보는 어떻게 도움이되며 (?) 워크 시트를 탐색하고 그 안에 값을 읽고 쓸 수있는 방법으로 어떻게 사용할 수 있습니까? 그게 무슨 (?), 그리고 무슨 이익을 위해 코드를 2 줄이야?

는 둘째

(I, 나는 단지 내가이 언어로 "생각"을 배울 수 있다는 것을 이해하기 위해 노력하고있어 전투가 되려고 노력하고 있지 않다) : 첫 번째 줄에서, I에게 무엇이다 팅을 받으시겠습니까? 두 번째 줄에서

나는 '팅을하고 난 를 얻을 수있어'설정 첫번째있어 팅을? 이 중첩 된 아니에요 이번에는 있지만, 이 팅 '을 얻을 팅 및 '을 설정보다이 세 번째 (마지막) 라인에서

(나는 그 라인이 실제로 무엇을하고 있는지에 대해 매우 혼란 스러워요).

이것은 매우 기본적인 코드이며 (기능적으로), 논리를 사용하여 "생각하는"방법의 측면에서 논리를 파악하는 데 어려움을 겪고 있습니다.

인내심을 보이고 셀을 선택하고, 값을 캡처 한 다음 변수에 할당하는이 간단한 코드의 단계별 논리를 설명하면 도움이 될만한 사람이 있습니까? 때문에 정말 오전 ... 내가 바로 그 간단한 작업을 수행하는 방법의 "생각"할 때, 나는 하나 개의 매우 간결한 라인 (VBA)에 그것을 할 수있는,

rngVal = Sheets("Sheet1").Range("A1").Value 

을 양해 해 주시기 바랍니다 "스프레드 시트"의 모든 내용과 3 줄의 내용이 혼동되어 이 표시되고이되고 이됩니다.

누구나? 주세요.

답변

0

Google은 자바 스크립트 클래스를 사용하여 이러한 다양한 객체를 나타냅니다. 설명을 돕기 위해 3 행을 두 부분으로 나눴습니다. 다음을 비교하십시오 :

var ss = SpreadsheetApp.getActiveSpreadsheet(); 
ss.setActiveSheet(ss.getSheetByName("Sheet1")); 
var rng = ss.setActiveSelection("A1"); 
var val = rng.getValues(); 

위의 각 줄은 다른 클래스의 Object를 반환합니다. 첫 번째 줄은 Spreadsheet 클래스의 Object를 반환하고 두 번째 줄은 Sheet 클래스의 개체를 반환하고 세 번째 줄은 Range 클래스의 개체를 반환하며 마지막 줄은 Object 클래스의 개체를 반환합니다.

다른 클래스의 개체에서 수행 할 수있는 다양한 동작 (방법)에 대한 설명서는 here을 참조하십시오. Google App을 만들 때 나는 해당 웹 페이지에 살고 있습니다. 다음과 같이

rngVal = Sheets("Sheet1").Range("A1").Value 

한 줄의 자바 스크립트로 작성 될 수 있습니다 :

var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1").setActiveSelection("A1").getValues(); 

희망 도움이

, 당신은 VBA에서 이해 코드이 줄을 위의 비교합니다. 질문이 있으면 알려주세요.

+0

THIS ... "setSctiveSelection ("A1 "). getValues ​​();" 아름답다! 나는 이것을 많이 고마워한다! 한 가지 더 질문 : 스프레드 시트는 GET입니다. 시트가 확보되었습니다. 그러나 Range는 SET이며 그 범위의 Value는 GET (다시)입니다. 이 특정 코드에서 SET 및 GET의 개념은 무엇입니까? Btw, 그런 식으로 작성된 코드는 어떻게 보지 못합니까? 그것은 내가 항상 우연히 만나는 것 (그리고 더 중요한 것은 IT가 작동합니다!)보다 훨씬 더 우아하고 간단합니다. – 5th4x4

+0

매트는 신경 쓰지 마세요. 이미 대답 했잖아. 클래스와 객체. 다시 한 번 감사드립니다! (또한 링크!) – 5th4x4

+0

도와 줘서 기뻐! 당신이 굉장한 것을 만들길 바래요! – Matt

0

너희들은 니eed보다 더 복잡해. 선택을 망칠 필요가 없습니다. getactivespreadsheet() .getsheetbyname ("x"). getrange ("a1"). getValue()도 작동합니다.

+0

니스! 너희들은 나를 내가 이해하기를 바랐던 것을 정확히 알도록 허락 해 주었다. 나는 매우 감사하고있다. 지식을 공유해 주셔서 감사합니다! – 5th4x4

1

흠 어떻게 든 정답 (내 다른 하나)이 기권되었습니다. 다시 setactiveselection을 수행하는 데 무의미하며 선택한 셀을 변경할 필요가 없으므로 코드가 느려집니다.

+0

나는이 사이트가 "투표"와 관련하여 어떻게 작동하는지 전혀 모른다. 나는 비 직관적 인 투표 시스템을 여기에서 알아낼 수 있기 전에 JS를 이해할 것 같지만, 그것에 대해 나에게 지시하게 자유롭게 느낀다. 그리고 명백한 불의를 바로 잡을 것이다. 나는 누군가를 위해 그리고 "나를 돕는 모든 사람들을위한 녹색 체크 마크"에 감사한다. 그래서 .... 어떻게해야합니까? 그리고 FYI : 분명히 나는 ​​감사 할 충분한 "평판"이 부족합니다. 어 ... 좋아. 무엇을 의미 하던지. – 5th4x4

+0

당신 말이 맞습니다 ... 그리고 받아 들여진 대답은 사실이 아닙니다 : S 값을 얻으면 불필요하고 불필요한 행렬이 단일 값 대신에 반환됩니다 ... 나는 보상하려고 시도했습니다 :-) –

+0

좋은 소식! 잘 했어, Serge insas! 다른 사람들을 도울 수있는 시간을 갖는 사람들을 돌보는 방법 :) 그리고 가치와 가치에 관해서는 매우 사실입니다. 나는 내 대본을 더 개발하면서 그것을 알아 냈다. 그리고 내 모든 미래의 질문에 당신의 의견 (그리고 편집 능력)을 자유롭게 삽입하십시오 : P 당신은 여기 모든 것 위에있는 것처럼 보입니다! 감사! 감사합니다. – 5th4x4